C ++随机函数返回相同的数字

时间:2013-02-15 18:29:20

标签: c++ random

我正在尝试从0到3的范围内获取随机数。使用此类代码:

#include <cstdlib>
int index = rand() % 3;

但总是得到相同的结果:1 1 0 1

我做错了什么?总是相同的数字。结果应在每次编译后或运行时更改其值?

2 个答案:

答案 0 :(得分:6)

您忘记了广告

#include <ctime>
srand(time(NULL)) 

在你的课程开始时。

每次根据当前时间运行程序时,都会生成一个新的种子。

答案 1 :(得分:2)

  

结果应在每次编译后或运行时更改其值?

实际上,不,结果对于给定的种子应该是相同的,如果您没有使用srand()明确设置种子,那么每次运行时结果都是相同的。为了每次都得到不同的结果,你应该使用从不完全确定的东西派生的东西来设置种子,比如时间(在某种意义上不确定,你不知道它用于设置种子的确切时间)