带种子的随机数发生器

时间:2012-04-14 09:58:14

标签: c random srand

我使用srand(time(NULL))生成随机数。 知道为什么它总是给出随机数字吗?在我的情况下它给予了。请帮助我也需要奇数。 我需要0s,1s的集合。 例如:{1,1,0,0,1,0,0,0,1,1,0}

2 个答案:

答案 0 :(得分:3)

呼叫

srand(time(NULL));

在程序开头只有一次,它会“随机播放”随机序列。

然后致电

rand();

它会返回0RAND_MAX范围内的数字。

如果您只想要0或1,那么您可以尝试使用

int n = rand() % 2;

int n = rand() & 0x01;

答案 1 :(得分: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