0

我正在使用 srand(time(NULL)) 生成随机数。知道为什么它总是给出偶数随机数吗?就我而言,它是如此。请帮助我也需要奇数。我需要一组 0 和 1。例如:{1,1,0,0,1,0,0,0,1,1,0}

4

2 回答 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 回答