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);
}?>
lcg_value
(PHP 4, PHP 5)
lcg_value — Kongruenzgenerator für Pseudozufallszahlen
Beschreibung
float lcg_value
( void
)
lcg_value() liefert Zufallszahlen zwischen null und eins. Die Funktion kombiniert zwei gesmischte kongruente Kongruenzgeneratoren mit den Perioden 2^31 - 85 und 2^31 - 249, die Periode der von dieser Funktion generierten Pseudozufallsfolge entspricht dem Produkt dieser beiden Primzahlen.
Rückgabewerte
Eine Pseudozufallszahl zwischen null und eins (als float)
daniel dot baulig at gmx dot de
03-Feb-2010 07:16
jfdsmit at gmail dot com
17-Dec-2007 06: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 08:54
An elegant way to return random float between two numbers:
<?php
function random_float ($min,$max) {
return ($min+lcg_value()*(abs($max-$min)));
}
?>
