lcg_value() 函数通过线性同余生成器(LCG,Linear Congruential Generator)返回一个范围为 (0, 1) 的伪随机浮点数。该函数结合了两个具有不同周期的同余生成器,周期大约为 2^31。
lcg_value(): float
| 参数 | 描述 |
|---|---|
| 无 | 该函数没有参数。 |
返回一个介于 0(包含)和 1(不包含)之间的伪随机浮点数,即 0 <= 返回值 < 1。
<?php
echo lcg_value() . "<br>"; // 例如 0.123456789
echo lcg_value() . "<br>"; // 例如 0.987654321
?>
输出(示例):
0.123456789
0.987654321
<?php
// 生成 [min, max) 范围内的随机浮点数
function randomFloat($min, $max) {
return $min + lcg_value() * ($max - $min);
}
echo randomFloat(1, 100) . "<br>"; // 例如 42.567
echo randomFloat(-10, 10) . "<br>"; // 例如 -3.14159
?>
输出(示例):
42.567
-3.14159
<?php
function rollDice() {
return floor(lcg_value() * 6) + 1;
}
echo "掷骰子结果: " . rollDice();
?>
输出(示例):
掷骰子结果: 4
lcg_value() 的随机性质量一般,不适合需要高随机性或安全性的场景(如加密、抽奖等)。random_int() 生成的整数转换为浮点数,但需注意范围调整。