lcg_value()
(PHP 4, PHP 5, PHP 7)
组合线性同余发生器
说明
lcg_value(void):float
lcg_value()返回范围为(0, 1)的一个伪随机数。本函数组合了周期为 2^31 - 85 和 2^31 - 249 的两个同余发生器。本函数的周期等于这两个素数的乘积。
返回值
范围为(0, 1)的伪随机数。
参见
Choose your weapon: <?php function mt_randf($min, $max) { return $min + abs($max - $min) * mt_rand(0, mt_getrandmax())/mt_getrandmax(); } function lcg_randf($min, $max) { return $min + lcg_value() * abs($max - $min); } function randf($min, $max) { return $min + rand(0,getrandmax()) / getrandmax() * abs($max - $min); }?>
An elegant way to return random float between two numbers: <?php function random_float ($min,$max) { return ($min+lcg_value()*(abs($max-$min))); } ?>
I think best example... <?php $x=0; while($x<=5){ $x++; echo lcg_value()+$x."\n"; } echo lcg_value()+$x-(2*lcg_value()); echo "\n"; ?>