我希望收到不同的输出,但是我得到两个独立于种子值的零(这里使用了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
。增加这种模式的种子仍然存在。