【问题标题】:Does array_rand use the Mersenne Twister algorithm?array_rand 是否使用 Mersenne Twister 算法?
【发布时间】:2012-04-11 07:50:08
【问题描述】:

在 PHP 中,我们可以选择 mt_rand()rand(),其中 mt_rand() 使用 Mersenne Twister 算法,rand() 使用 libc 随机生成器。

我想使用array_rand 从数组中选择一个随机项。但是,array_rand 使用 Mersenne Twister 算法吗?

使用mt_rand 实现我自己的array_rand 非常简单,但是如果array_rand 使用Mersenne Twister,那就更好了。

【问题讨论】:

    标签: php random mersenne-twister


    【解决方案1】:

    It does now,自 PHP 7.1 起;请参阅this RFC 和此bug report 了解更多详情。

    【讨论】:

      【解决方案2】:

      可能不是这样,因为 array_rand() 的结果曾经是 not random at all。它已在最新版本中得到修复(有关详细信息,请参阅 Vaxquis's answer)。

      【讨论】:

        【解决方案3】:

        array_rand 似乎在内部使用php_rand(),这似乎是 good 旧的非 mt 版本。

        【讨论】:

          猜你喜欢
          • 2014-02-22
          • 2013-06-11
          • 2017-04-01
          • 1970-01-01
          • 2014-04-17
          • 2014-05-20
          • 2020-01-10
          • 2013-10-13
          • 1970-01-01
          相关资源
          最近更新 更多