std :: default_random_engine为不同的种子提供相同的结果

时间:2016-02-09 10:55:28

标签: c++11 random

我希望收到不同的输出,但是我得到两个独立于种子值的零(这里使用了1 nad 2):

#include <iostream>
#include <string>
#include <random>

using namespace std;

int main()
{
  default_random_engine e1(1);
  default_random_engine e2(2);

  uniform_int_distribution<int> chose(0, 50);

  int a1 = chose(e1); cout << a1 << endl;
  int a2 = chose(e2); cout << a2 << endl;
}

我的代码出了什么问题?

更新:根据@arekolek的建议,我做了一个小实验。对于种子<= 2903,第一个数字始终是分布的最小数字。种子>= 2904是最小的数字+1。增加这种模式的种子仍然存在。

0 个答案:

没有答案