我想找到一种在C中获取随机数的无法解释的方法(尽管最多我会将其用于0-20的值,更可能只有0-8).我已经看过这个公式,但经过一些测试后,我不确定它是否有偏差.有帮助吗?
这是使用的完整功能:
int randNum()
{
return 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));
}
Run Code Online (Sandbox Code Playgroud)
我使用以下方法播种:
unsigned int iseed = (unsigned int)time(NULL);
srand (iseed);
Run Code Online (Sandbox Code Playgroud)
下面建议的那个拒绝为我工作我试过了
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;
}
Run Code Online (Sandbox Code Playgroud)
当我注释掉printf时,它停止工作并给我相同的数字50000次.