броя на опитите е твърде малък за да се измери вероятност.
аз написах малко по-оптимизиран алгоритъм за смятане
int test()
{
int seq=0;
for(int i=0;i<1000;i++){
int r=rand()&0xfff;
if(r>0xfff/10)seq++;
else seq=0;
if(seq==20)return i;
}
return 0;
}
int main(){
srand(GetTickCount());
int i,j;
int not=0;
__int64 start=0;
int sn=0;
for(i=0;i<N;i++){
if(j=test()){
start+=j-20;
sn++;
}else not++;
if(i%(N/100)==0)printf("|");;
}
printf("p=%d start:%f\n",not,(double)start/sn);
scanf("%d\n",&i);
и при 100 милиона опита все още няма нито едно събитие, а смята към две минути. ще го пусна на работа на бърз компот с повече опити. разпечатвам и средното място където се намира поредицата, което е някъде към позиция 51.34.
впрочем, разпределението би трябвало да е близко до поасоново и може да се сметне теоретично и да се сравни с резултата от симулацията.
NE SUTOR ULTRA CREPIDAMРедактирано от zaphod на 31.05.11 07:45.