2014-04-14T14:17:02
murphyEs scheint als sei ein normaler Arrayzugriff $foo[$bar] äquivalent zu $foo[int($bar)], der Index wird also immer abgerundet.
Da rand irgendeine reelle Zahl kleiner als sein Argument und größer gleich Null liefert, sollte int(rand(@foo)) einen zufälligen, ganzzahligen Arrayindex für @foo liefern.
Wie fair gleichverteilt diese Indices sind steht in den Sternen, weil rand irgendeinen von der verwendeten C-Standardbibliothek abhängigen Zufallsgenerator benutzt. Kryptographisch hochwertige Ergebnisse, die auch bei ein paar Millionen generierten Indices noch schön gleichverteilt sind, sollte man nicht erwarten!
Das scheint für meine Zwecke vollkommen auszureichen, mir gings eher um Inkonsistenzen, die sich aus der Art der Anwendung — Stichwort Schranken von Zahlenbereichen — ergeben. Ich mach auch keine Kryptoanwendung, also ist mir wurst, ob Vorhersagbarkeiten in der Zahlenfolge enthalten sind.
Danke°