我想找到一种在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次.
有时我想做这样的事情(i和j是整数).
(if i==4 && j==9)
{
...
}
Run Code Online (Sandbox Code Playgroud)
如果i等于4且j等于9,它将通过括号.我一直使用单个&符号(&)而不是双和号,我的代码已经编译并运行.
它是否与双&符号&&做同样的事情,如果不是它做了什么?
编辑:哦,我一直在做同样的事情或者,使用'|' 而不是'||'