Ausgabe einer Schleife Zeitverzögern

[phpf]srand[/phpf] tut nichts anderes als den Pseudozufallszahlengenerator mit einem Startwert zu füttern. Anhand dieses Startwertes ergibt sich durch sukzessives Aufrufen von [phpf]rand[/phpf] eine Reihe von (Pseudo-)Zufallszahlen. Bei gleichem Startwert entsteht dabei auch stets die gleiche Zahlenfolge. Beispielsweise gibt folgendes Skript immer die selben Werte aus:
PHP:
<?php
srand(0);
printf('%d %d %d %d %d', rand(), rand(), rand(), rand(), rand());
?>

Will man jetzt alle x Sekunden eine neue Reihe von Zufallszahlen erhalten, muss man nur dafür sorgen, dass [phpf]srand[/phpf] alle x Sekunden einen anderen Wert übergeben bekommt. Teilt man jetzt die Anzahl der Sekunden seit dem 01.01.1970 ([phpf]time[/phpf]) durch x und rundet das Ergebnis ab ([phpf]floor[/phpf]), so ergibt sich genau alle x Sekunden ein neuer Wert. Den übergibt man an [phpf]srand[/phpf] und erhält somit alle x Sekunden eine neue Zufallszahlenfolge.

[phpf]shuffle[/phpf] greift übrigens intern auf den Zufallszahlengenerator zurück, den man mit [phpf]srand[/phpf] initialisiert. Darum funktioniert mein Vorschlag auch ;)

PS: Der erste Absatz entspricht sinngemäß dem Eintrag zu [phpf]srand[/phpf] im Manual. Wo hast du das gelesen, dass dadurch [phpf]rand[/phpf] nach einer bestimmten Zeit aufgerufen wird? :confused:
 
Zurück