【发布时间】:2012-02-12 10:53:33
【问题描述】:
PHP 在 windows 上返回最大可能的随机值 32767?
什么是windows的约束?
echo getrandmax(); //32767
【问题讨论】:
-
rand 调用了一个可以追溯到方舟的系统 rand 函数——或者至少在大多数小型计算机具有 16 位字长的时候。如果您想要一个更好的随机数生成器,请使用 Mersenne Twister 之一:mt_rand()。它的 mt_getrandmax() 是 2^31-1。
-
或者更确切地说,它是最大的种子。在 1 到 250000 或 1 到 10 亿之间只有 32767 个不同的随机值,这是相当愚蠢的。 (这就是 Mersenne Twister 的用武之地!)