我正在使用 srand(time(NULL)) 生成随机数。知道为什么它总是给出偶数随机数吗?就我而言,它是如此。请帮助我也需要奇数。我需要一组 0 和 1。例如:{1,1,0,0,1,0,0,0,1,1,0}
问问题
5811 次
2 回答
3
称呼
srand(time(NULL));
只有在你的程序开始时,它会“打乱”随机序列。
然后打电话
rand();
它会返回一个范围0
为的数字RAND_MAX
。
如果你只想要 0 或 1 那么你可以尝试
int n = rand() % 2;
或者
int n = rand() & 0x01;
于 2012-04-14T10:03:48.597 回答
0
想想初始化 PRNG 就像初始化一个变量......你不这样做
// pseudo-code
// print numbers from 1 to 10
do 10 times
number_to_print = 1
print number_to_print
number_to_print++
end loop
同样,srand()
每个程序运行只应调用一次。
call srand() // initialize PRNG
loop
rand()
end loop
于 2012-04-14T10:12:03.553 回答