PHP Doku:: Kongruenzgenerator für Pseudozufallszahlen - function.lcg-value.html

Verlauf / Chronik / History: (3) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzMathematische ErweiterungenMathematische FunktionenMathematische Funktionenlcg_value

Ein Service von Reinhard Neidl - Webprogrammierung.

Mathematische Funktionen

<<is_nan

log10>>

lcg_value

(PHP 4, PHP 5)

lcg_valueKongruenzgenerator 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)

Siehe auch

  • rand() - Erzeugt einen zufälligen Integerwert
  • mt_rand() - Erzeugt "bessere" Zufallszahlen


3 BenutzerBeiträge:
- Beiträge aktualisieren...
daniel dot baulig at gmx dot de
4.02.2010 4: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.12.2007 15: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
5.06.2007 17:54
An elegant way to return random float between two numbers:

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



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)