【问题标题】:C++ random function return same numbers [duplicate]C ++随机函数返回相同的数字[重复]
【发布时间】:2013-01-31 19:18:26
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ random


    【解决方案1】:

    你忘了打广告

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

    在程序开始时。

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

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-08-09
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 2013-07-29
      • 1970-01-01
      相关资源
      最近更新 更多