Math 函数
在线手册:中文 英文
PHP手册

lcg_value

(PHP 4, PHP 5)

lcg_value组合线性同余发生器

说明

float lcg_value ( void )

lcg_value() 返回范围为 (0, 1) 的一个伪随机数。本函数组合了周期为 2^31 - 85 和 2^31 - 249 的两个同余发生器。本函数的周期等于这两个素数的乘积。


Math 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: 组合线性同余发生器

用户评论:

daniel dot baulig at gmx dot de (04-Feb-2010 03:16)

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);
}
?>

jfdsmit at gmail dot com (17-Dec-2007 02:44)

Be warned, the function provided by mr dot joebert at gmail dot com has a serious tendency to return $min more often than anything else, especially when $min and $max are close. It also will never return $max if $min is negative. rok kralj gmail com's implementation does not have this problem, as it operates on the difference between $max and $min instead of $max itself.

rok kralj gmail com (05-Jun-2007 04:54)

An elegant way to return random float between two numbers:

<?php
function random_float ($min,$max) {
   return (
$min+lcg_value()*(abs($max-$min)));
}
?>