User since
2005-03-24
2
Artikel
BenutzerIn
kann mir vielleicht jemand sagen, mit welchem Befehl man einer Variable eine Zufallszahl zuweisen kann?
Danke
User since
2003-09-25
182
Artikel
BenutzerIn
$wert=1000;
$zahl=rand($wert);
Gibt $zahl eine Zufallszahl zwischen 0 und 1000;
perldoc -f rand (es gibt, glaub ich, noch srand)\n\n
<!--EDIT|mordur|1111678568-->
User since
2004-03-22
5697
Artikel
ModeratorIn + EditorIn
srand würd ich nur nehemen wenn es wirklich zufallszahlen sein sollen.
User since
2003-08-04
5246
Artikel
ModeratorIn
[quote=lichtkind,25.03.2005, 13:10]srand würd ich nur nehemen wenn es wirklich zufallszahlen sein sollen.[/quote]
Quoteaus: perldoc -f srand
If srand() is not called explicitly, it is called implicitly at
the first use of the "rand" operator. However, this was not the
case in versions of Perl before 5.004, so if your script will
run under older Perl versions, it should call "srand".
User since
2005-02-01
181
Artikel
BenutzerIn
Wirkliche Zufallszahlen gibt es m.E. auf dem Rechner normalerweise nicht. Deshalb heißen die Dinger auch Pseudozufallszahlen.
Das Zitat von Strat aus dem Manual könnte man leicht missinterpretieren. srand initialisiert den Pseudozufallszahlengenerator und ist kein Ersatz für rand. Deshalb sollte in den alten Perl-Versionen srand einmal zu Beginn aufgerufen werden aber keinesfalls an Stelle von rand.
Gruß
Thomas
Gruß
Thomas
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=sesth,25.03.2005, 19:57]Wirkliche Zufallszahlen gibt es m.E. auf dem Rechner normalerweise nicht. Deshalb heißen die Dinger auch Pseudozufallszahlen.[/quote]
Naja, eine n-te Zufallszahl ist ja eine Zahl, die man auch dann nicht erraten oder bestimmen kann, wenn man die anderen n-1 Zufallszahlen davor schon gesehen hat.
Im Fall von rand kann ich dir da Zustimmen.
Ich finde aber, wenn man verschiedene Dinge mit in die Rechnung nimmt (CPU Power/Auslastung, Speicherverbrauch (aktueller Heap und so en zeugs), aktuelles Laufwerk, aktives Fenster, Zeit (und zwar highperformance counter oder so), Netzwerktraffic, ...., und, und, und), und diese Daten gut mit einander Mixed um eine gute Verteilung zu erhalten (z.B. mit einer Hash-Funktion ala RipeMD160) kommt man schon an gute Ergebnisse ran!
User since
2005-02-01
181
Artikel
BenutzerIn
Die Frage ist doch was ein "gutes" Ergebnis ist. Bei Zufallszahlen sollte die Gleichverteilung stimmen, die Periodizität möglichst hoch sein, keine Abhängigkeiten (auch in höheren Dimensionen) zwischen den Zahlen bestehen usw. Das wird nicht mit einem zufälligen Algorithmus, erreicht sondern mit einem mathematisch abgesicherten Verfahren, das Zufallszahlen erzeugt. Wenn Du nur eine Zufallszahl benötigtst, kann Dir das alles egal sein - falls Du aber eine Simulation mit mehreren Millionen Zufallszahlen betreibst und Dein Generatur liefert Mist, kannst Du Dein Simulationsergebnis vergessen.
srand bestimmt den Startwert. Danach sollte rand für qualitativ gute Zufallszahlen sorgen. Wird durch Zwischenaufrufe von srand die Zufallsfolge unterbrochen, können die oben genannten Kriterien u.U. nicht erfüllt werden.
Gruß
Thomas
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=sesth,26.03.2005, 18:52]Die Frage ist doch was ein "gutes" Ergebnis ist. Bei Zufallszahlen sollte die Gleichverteilung stimmen[/quote]
hab ich ja gesagt...