-5

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

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

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

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

4

2 回答 2

6

你忘了做广告

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

在您的程序开始时。

这将在您每次根据当前时间运行程序时生成一个新种子。

于 2013-02-15T18:30:31.107 回答
2

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

实际上,不,对于给定的种子,结果应该是相同的,如果你没有用 明确设置种子srand(),那么每次运行的结果都是一样的。要每次获得不同的结果,您应该使用从不完全确定的事物(例如时间)派生的东西来设置种子(在您不知道用于设置种子的那一刻的确切时间的意义上,不是确定性的) .

于 2013-02-15T18:33:17.980 回答