【发布时间】:2011-08-09 16:52:07
【问题描述】:
如果标准库中的 random_shuffle 算法没有提供随机生成器函数,如果提供相同的数据,程序的连续运行是否会产生相同的随机序列?
例如,如果
std::random_shuffle(filenames.begin(), filenames.end());
在程序的连续运行中对目录中的相同文件名列表执行,随机序列产生的随机序列是否与先前运行中的相同?
【问题讨论】:
-
你知道的,你可以试试看... 排队讨论随机播种 :)
-
我确实得到了相同的结果——只是试图确保这是预期的行为。当然,答案也可能是“是的,这发生了,但这是一个意外,因为行为是未定义的。”
-
BTW std::random_shuffle 在 C++14 中被弃用并在 C++17 中被移除。这是一个更好的方法:stackoverflow.com/a/16969267/2151446
标签: c++ standard-library