在C中生成随机数

时间:2011-02-02 01:58:31

标签: c random

我想在0到20之间生成2个随机数

int one = rand() % 20;
它给了我一个稳定的值,即1 ...

我错过了什么吗?

3 个答案:

答案 0 :(得分:2)

您必须为随机数提供种子。

srand( time(NULL) );
int num1 = rand() % count;


int num2 = rand() % count;

1到20之间的随机数

int num = rand() % 20 ;

if( num == 0 )
    num += 2;

else if( num == 1 )
    ++num ;

答案 1 :(得分:2)

如果count是一个,就会发生这种情况 如果count不是一个,则代码为works perfectly

但是,如上所述,您需要通过调用srand来设置非确定性种子。

答案 2 :(得分:1)

要在指定范围[min,max]中生成随机数,请执行以下操作:

min + (int)((double) rand() / RAND_MAX * (max - min + 1));

方法

min + rand() % (max - min + 1);

可能更快,但根据RNG,它可能无法正常分配值。

正如其他人所提到的,如果您希望每次运行都有不同的序列,请在程序开头执行srand 一次