rand wirklich zufall?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

rand wirklich zufall?

Beitrag von langeweile »

ich habe ein script mit einem rand befehl

zeile mit dem rand befehl ist:

Code: Alles auswählen

$zufallszahl = rand(1,100);

vielleicht ist es ja einbildung, aber ich habe das gefühl, das einige zahlen viel öfter kommen als andere.

ist das möglich oder spielt mir da meine wahrnehmung einen streich?
Michael Zacher
Mitglied
Beiträge: 1620
Registriert: 03.01.2004 23:12
Wohnort: Aken (Elbe)

Re: rand wirklich zufall?

Beitrag von Michael Zacher »

langeweile hat geschrieben:ist das möglich oder spielt mir da meine wahrnehmung einen streich?
Deine Wahrnehmung spielt Dir einen Streich.
Mit freundlichen Grüßen / Best regards / Met vriendelijke groeten

Michael Zacher
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Wenn du ganz sicher gehen willst kannst du es ja ausprobieren.

Bau ein Skript dass z.B. Zahlen von 0 bis 100 generiert und das Ergebnis in einem Array zählt. Wenn du das dann 100000 mal ausführst und am Ende den Inhalt des Arrays ausgeben lässt sollte es einigermaßen gleich verteilt sein.
Ach ja, es sollte vor dem Aufruf von rand() srand() benutzt werden um jedes mal andere Zufallszahlen zu bekommen wenn eine ältere PHP Version als 4.2.0 vorliegt!

Code: Alles auswählen

srand ((double)microtime()*1000000);
for($i=0;$i<=100;$i++)
{
$array[$i]=0;
}
for($i=0;$i<=100000;$i++)
{
$array[rand(0,100)]++;
}
for($i=0;$i<=100;$i++)
{
echo "$i: " . $array[$i] . "<br>";
}
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: rand wirklich zufall?

Beitrag von Pyramide »

langeweile hat geschrieben:aber ich habe das gefühl, das einige zahlen viel öfter kommen als andere.
Naja und? Wenn du würfelst kannst du auch dreimal hintereinander die gleiche Zahl würfeln, obwohl es nur 6 Zahlen gibt.

Wenn du nicht möchtest, daß zwei Zahlen hintereinander erscheinen, dann solltest du ein Array mit den Zahlen von 1 bis 100 nehmen, dieses durchwürfeln und dann die ersten x Stellen nehmen.
KB:knigge
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Also wenn du es genau wissen willst: zufällig ist rand() nicht - es ist allein auf Grund technischer Grenzen immer deterministisch - auch wenn du das in der Regel ignorieren kannst. Für normale Fälle liefert rand() ausreichend gute Zufallszahlen.
Wenn's etwas besser sein soll: http://de2.php.net/manual/de/function.mt-rand.php

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „Coding & Technik“