我使用default_random_engine生成不同数字的列表,但它们恰好相同。我想知道生成不同的数字?我知道srand()的确如此。但我可以使用此默认引擎吗?
default_random_engine engine{ static_cast<unsigned int>(time(0)) };
uniform_real_distribution<double>randomNumber{ 50,100 };
for(int i=0; i<10;i++){
a[i]= randomNumber(engine);
}
答案 0 :(得分:2)
这种行为是随机数生成器的设计。您需要在启动程序时为随机生成器设置“种子”。
如果你有C ++扩展名@WhozGraig建议他们是最好的。它非常草率但很多人使用time()函数在每次程序运行时获得不同的数字。