在PHP中,我们可以选择mt_rand()和rand(),其中mt_rand()
使用Mersenne Twister算法,rand()
使用libc随机生成器。
我想使用array_rand从数组中选择一个随机项。但是,array_rand
是否使用Mersenne Twister算法?
使用array_rand
实现我自己的mt_rand
非常简单,但如果array_rand使用Mersenne Twister,则更好。
答案 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版本。