小编Rob*_*ert的帖子

"n*(rand()/ RAND_MAX)"是否会产生偏斜的随机数分布?

我想找到一种在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次.

c random numbers skew

10
推荐指数
1
解决办法
2万
查看次数

在C中是逻辑和(&&)的简写吗?

有时我想做这样的事情(i和j是整数).

(if i==4 && j==9)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

如果i等于4且j等于9,它将通过括号.我一直使用单个&符号(&)而不是双和号,我的代码已经编译并运行.

它是否与双&符号&&做同样的事情,如果不是它做了什么?

编辑:哦,我一直在做同样的事情或者,使用'|' 而不是'||'

c logical-operators

4
推荐指数
2
解决办法
165
查看次数

标签 统计

c ×2

logical-operators ×1

numbers ×1

random ×1

skew ×1