mt_rand 通过梅森旋转(Mersenne Twister)随机数生成器生成随机值 &reftitle.description; intmt_rand intmt_rand intmin intmax 很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。mt_rand 函数是旧的 rand 的临时替代。该函数用了梅森旋转中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。 如果没有提供可选参数 minmaxmt_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; <function>mt_rand</function> 例子 ]]> &example.outputs.similar; &reftitle.notes; min max 的范围必须在 getrandmax 范围内。即 (max - min) <= getrandmax。否则,rand 可能会返回质量差的随机数。 &reftitle.seealso; mt_srand mt_getrandmax random_int random_bytes