【问题标题】:Difference between std:random shuffle() and Collections.shufflestd:random shuffle() 和 Collections.shuffle 之间的区别
【发布时间】:2013-04-20 19:04:51
【问题描述】:

我多次尝试了解为什么 C++ 中的 std:random shuffle() 和 Java 中的 Collections.shuffle 各不相同。

相同的种子不给出相同的生成序列,但是假设它们都是均匀分布的。

如果有人可以通过示例帮助我了解何时可以产生相同的价值,我将不胜感激。 我实现了一个使用随机生成的值作为初始值的算法,我有一个 C++ 的结果,我想验证我用 Java 实现的算法。

【问题讨论】:

  • 嗯,算法不一样...不是很明显吗?在多个 shuffle 实现之间只保证最终结果的分布

标签: java c++ shuffle


【解决方案1】:

它们产生不同结果的原因是它们的随机数生成器产生不同的随机数序列。当我需要对不同编译器或语言相同的随机数序列时,我所做的就是生成一个数字序列并将其存储在一个文本文件中,然后将该文本文件用作随机数的源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-19
    • 2019-12-21
    • 1970-01-01
    • 2020-10-11
    • 2021-12-25
    • 2020-05-10
    • 2014-09-20
    • 2010-10-28
    相关资源
    最近更新 更多