array_rand是否使用Mersenne Twister算法?

时间:2012-04-11 07:50:09

标签: php random mersenne-twister

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

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

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

3 个答案:

答案 0 :(得分:2)

It does now,自PHP 7.1起;有关详细信息,请参阅this RFC和此bug report

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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