Я хотел бы найти неискаженный способ получения случайных чисел в C (хотя в лучшем случае я собираюсь использовать его для значений 0-20, и скорее только 0-8). Я видел эту формулу, но после нескольких тестов я не уверен, искажена она или нет. Любая помощь?
Вот полная используемая функция:
int randNum()
{
return 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));
}
Я запустил ее, используя:
unsigned int iseed = (unsigned int)time(NULL);
srand (iseed);
Тот, что предложен ниже, отказывается работать для меня, я пробовал
int greek;
for (j=0; j<50000; j++)
{
greek =rand_lim(5);
printf("%d, " greek);
greek =(int) (NUM * (rand() / (RAND_MAX + 1.0)));
int togo=number[greek];
number[greek]=togo+1;
}
, и он перестает работать и дает мне одно и то же число 50000 раз, когда я комментирую выход на печать