Witam,
Muszę napisać program, który sprawdzi czy generator liczb losowych spełnia podstawowe warunki losowości. Czy liczby są sobie równe z dokładnością do odchylenia standardowego?
#include <stdio.h>
#include <math.h>
#define N 4000000
int main ()
{
unsigned int tab[256];
unsigned char wylosowana_liczba;
double suma =0;
int i;
double odchylenie;
double suma2=0;
double srednia2;
double srednia;
/upewniamy sie ze tablica jest rowna zero/
for(i=0;i<256;++i) {
tab[i]=0;
}
/losujemy n liczb i je zliczamy/
for(i=0;i<N;++i) {
/*random() mażna dopisać to - % zamiast unsigned char */
wylosowana_liczba = random(); /ostrzezenie o zakresie/
tab[wylosowana_liczba] += 1;
}
for(i=0;i<256;++i) {
suma=suma+tab[i];
suma2 =suma2 + ((double)tab[i]*(double)tab[i]);
}
srednia=suma/256;
/for(i=0;i<100;++i)
{
suma2+=(tab[i]-srednia)(tab[i]-srednia);
}
*/
srednia2=suma2/256;
printf("srednia wynosi %lf\n",srednia);
printf("srednia2 wynosi %lf\n",srednia2);
odchylenie=sqrt(srednia2-srednia*srednia);
printf("odchylenie=%lf\n", odchylenie);
return 0;
}
Mam coś takiego i nie wiem co dalej. Od jakiej liczby przestaje to działać?