【问题标题】:Random Number Generation - Not same Results for MT and SMFT随机数生成 - MT 和 SMFT 的结果不同
【发布时间】:2014-03-05 14:04:27
【问题描述】:

这是我的问题:我有从 MT19937(32 位字)生成的随机数和由 SMFT(面向 SIMD 的快速梅森捻线器)提供的具有相同周期和 32 位字长配置的随机数。 此外,我生成了具有相同种子(= 0)的值。结果却不一样! 谁能解释一下,这怎么可能?

提前致谢。

【问题讨论】:

    标签: c# random


    【解决方案1】:

    来自SIMD-oriented Mersenne Twister webpage

    在大多数平台上,SFMT 比 MT 快得多。不仅速度提高了,而且 v 位精度的等分布的维数也得到了提高。

    如果有任何改进,它必须即使对于相同的种子也有不同的结果。我认为这是一种针对现代 CPU 优化的稍微不同的算法,它与 MT19937 具有相同的基本原理。

    【讨论】:

    • 对。我不知道确切的区别,但SFMT 内部产生 128 位整数 - 这可能映射到 32 位数字。
    • 谢谢你们。你说的对。此外,递归函数本身在两个版本之间有很大的不同,因此它会提供不同的结果。谢谢
    【解决方案2】:

    据我所知,SFMT 具有更好的均匀分布特性和更快的从0s 恢复。因此它的实现不同于MT

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多