Zufallsgeneratoren

BlueSea

Mitglied
rand und mt_rand probiert und alle beiden haben einen verdammten Nachteil.

Nach einigen hundert Schleifendurchgängen hängen sich die Funktionen auf.

Hat jemand noch eine Idee wie man Zufallszahlen erzeugt?

Muss auch nicht richtige Zufälle sein, aber wenn ich 3 Schleifen durchführe dann sollten dort verschiedene Reihenfolgen der Zahlen erscheinen.

Ich rede auch von Ganzzahlen.

Ich muss auch nur an einen Bereich von bis....
 
PHP:
<?PHP
function generate_numbers($min, $max, $anz)
{
     $array = range($min, $max);
     srand ((double)microtime()*1000000);
     for($x = 0; $x < $anz; $x++)
     {
          $i = rand(1, count($array))-1;
          $erg[] = $array[$i];
          array_splice($array, $i, 1);
     }
     return $erg;
}
// 5 eindeutige Zahlen im Bereich von 1 bis 100 ermitteln
$zufalls_array = generate_numbers(1, 100, 5);
echo join("; ", $zufalls_array);
?>

Dürfte sich wohl von selbet erklären: Diese Funktion erstellt dir die Zufallszahlen so, dass sich keine davon wiederholt. Mit $min btw. $max setzt du den Bereich fest in dem die Zahlen erstellt werden sollen also z.B. zwischen 5 und 23. Mit $anz setzt du fest wieviele erstellt werden sollen. Das ganze wird anschließend in ein array gepackt und mit join ausgelesen.
Willst Du die zahlen hintereinandernimmst du bei Join das "; ", wech, so dass nur $zufalls_array drin steht. Dann hast Du alles hintereinander.
Willst Du die Zahlen einzeln haben kannst Du (wenn du join eine variable verpasst hast) das ganze splitten und jeder Zahl eine Variable verpassen.
Hoffe das hilft Dir weiter! :)
 
Zurück