#include #include #include #include int n=90; int i,newnum,maxdelay,choose,trials,success; double advantage; int seen=0; int delay[91],happened[91]; int main(void) { long t; double sdbase=sqrt((double)(n-1)/n/n); double sd; double z; srand48(time(&t)); printf("Un indice di successo di k vuol dire che il numero piu' in ritardo e' \ uscito con una frequenza k volte quella di un numero qualsiasi. In questo programma,\ il numero qualsiasi e' 1\n\n"); printf("Secondo il mio modello, Z dovrebbe essere fra -1,96 e 1,96 con probabilità 95%\n"); for (i=1;i<=n;i++) { delay[i]=0; happened[i]=0; } while (seenmaxdelay) { choose=i; maxdelay=delay[i]; } } newnum=1+(int)floor(drand48()*n); delay[newnum]=0; for (i=1;i<=n;i++) { if (i!=newnum) { delay[i]++; } } trials++; if (choose==newnum) { success++; } if (trials%100000==0) { advantage=(double)success/trials*n; sd=n*sdbase/sqrt((double)trials); z=(advantage-1)/sd; printf("Iterazioni: %i Indice di successo dei ritardi: %g Z: %g\n", trials, advantage, z); } } }