mt_rand
通过梅森旋转(Mersenne Twister)随机数生成器生成随机值
&reftitle.description;
intmt_rand
intmt_rand
intmin
intmax
很多老的 libc
的随机数发生器具有一些不确定和未知的特性而且很慢。mt_rand
函数是旧的 rand 的临时替代。该函数用了梅森旋转中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比
libc 提供的 rand() 快四倍。
如果没有提供可选参数 min 和
max,mt_rand
返回 0 到 mt_getrandmax
之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用
mt_rand(5, 15)。
&caution.cryptographically-insecure;
&reftitle.parameters;
min
可选的、返回的最小值(默认:0)
max
可选的、返回的最大值(默认:mt_getrandmax)
&reftitle.returnvalues;
返回的随机整数值介于 min(或 0)和
max(或 mt_getrandmax,包括两端)。
&reftitle.errors;
如果 max 小于 min,则会抛出
ValueError 异常。
&reftitle.changelog;
&Version;
&Description;
8.0.0
如果 max 小于 min,则会抛出
ValueError 异常。之前会抛出 E_WARNING 错误,并且函数返回 &false;。
7.2.0
rand 已收到模偏差的 错误修复。这意味着使用特定种子生成的序列可能与
64 位机器上的 PHP 7.1.0 不同。
7.1.0
rand 成为 mt_rand 的别名。
7.1.0
mt_rand 成为使用梅森旋转(Mersenne
Twister)算法的固定、正确版本。要使用旧行为,请使用 mt_srand 并将
MT_RAND_PHP 作为第二个参数。
&reftitle.examples;
mt_rand 例子
]]>
&example.outputs.similar;
&reftitle.notes;
min max 的范围必须在 getrandmax
范围内。即 (max - min) <=
getrandmax。否则,rand 可能会返回质量差的随机数。
&reftitle.seealso;
mt_srand
mt_getrandmax
random_int
random_bytes