Seite 1 von 1
wirklich random?
Verfasst: Sonntag 29. März 2009, 15:40
von mzh
Hallo zusammen
Code: Alles auswählen
randList = []
for i in range(10):
randList.append(random.randint(0, 10))
print(randList)
ergibt:
.
Ich mein, könnte schon ein bisschen mehr verschiedene Zahlen geben nicht? Z.B. mag ich auch 5 oder 4. Kommt mir das nur so vor, oder sind die Zahlen, die so erzeugt werden nicht wirklich gleichverteilt?
Verfasst: Sonntag 29. März 2009, 15:51
von EyDu
Doch, die Zahlen sind in etwa gleichverteilt, Menschen haben nur typischerweise Probleme sich diese vorzustellen. Wenn Zahlen gehäuft vorkommen, werden diese als Muster erkannt, obwohl dies nicht der Fall ist. Mehrfach vorkommende Zahlen sind allerdings nichts außergewöhnliches. Machst du eine größere Stichprobe, oder viele kleine, dann gleicht sich diese gefühlte Unregelmäßigkeit aus.
Verfasst: Sonntag 29. März 2009, 15:54
von Darii
Mach mal eine größere Stichprobe. Zufällig heißt eben gerade auch, dass du bei einer kleineren Stichproben Ergebnisse bekommst die stark von einer Gleichverteilung abweichen.
Verfasst: Sonntag 29. März 2009, 15:59
von rayo
Code: Alles auswählen
In [1]: import random
In [2]: from collections import defaultdict
In [3]: data = defaultdict(int)
In [4]: for x in xrange(100000):
...: data[random.randint(0,10)] += 1
In [5]: data
Out[5]: defaultdict(<type 'int'>, {0: 9042, 1: 9121, 2: 9118, 3: 9209, 4: 9152,
5: 9080, 6: 8998, 7: 9139, 8: 9005, 9: 9091, 10: 9045})
Also ich finde es sehr gut Verteilt
Gruss
Verfasst: Sonntag 29. März 2009, 16:29
von Nocta
Joa, da gilt das
http://de.wikipedia.org/wiki/Gesetz_der ... Fen_Zahlen 
Bei rayo sind es eben sehr viele Zahlen.
Wenn man das ganze nur mit 10 Zahlen machen würde, könnte das Ergebnis theoretisch auch
Code: Alles auswählen
In [5]: data
Out[5]: defaultdict(<type 'int'>, {3: 9, 4: 1})
lauten.
Natürlich könnte man auch bei einer Millionen Zahlen eine starke Gewichtung zu einer einzelnen Zahl hin haben, aber das ist sehr unwahrscheinlich.
Bei Zufallsalgorithmen habe ich bisher eh immer ziemlich gleichmäßige Ergebnisse gesehn, vielleicht lassen die gar keine allzu große Abweichungen zu :p
Verfasst: Montag 30. März 2009, 20:41
von pyFan
Hallo!
Man kann sich natürlich auch bei
www.random.org "echten" Zufall besorgen.
Dieser wird aus athmosphärischen Rauschen extrahiert.
Nicht diese häßlichen Pseudozufallszahlengeneratoren...
ungetestet:
http://www.derkeiler.com/Newsgroups/sci ... 15862.html
Gruss
pyFan
Verfasst: Montag 30. März 2009, 20:47
von numerix
und der Typ, der das verzapft hat, nennt sich auch noch "rossum" ...

Verfasst: Montag 30. März 2009, 20:48
von Pekh
Irgendwann ... Irgendwann werden die Menschen in der Lage sein, auch atmosphärisches Rauschen zu "berechnen"/vorherzusagen. Und dann ists mit "True Randomness" auch nicht mehr weit her

Verfasst: Montag 30. März 2009, 20:56
von lunar
pyFan hat geschrieben:Man kann sich natürlich auch bei
www.random.org "echten" Zufall besorgen.
os.urandom und
random.SystemRandom liegen näher, erfordern keine Netzwerkverbindung und erzeugen zumindest bei jedem modernen Linux- und Windowssystem Zufallszahlen, die jedem Anspruch genügen. Unter Linux lässt sich zudem immer noch "/dev/random" direkt öffnen, falls echte Zufallszahlen benötigt werden (was aber eigentlich nie der Fall ist).
Für kryptographische Zwecke lassen sich Zahlen, die über ein ungesichertes Netz laufen, eh nicht verwenden.
Nicht diese häßlichen Pseudozufallszahlengeneratoren...
Was ist denn an Pseudozufallsgeneratoren hässlich?
Verfasst: Montag 30. März 2009, 21:19
von pyFan
Hallo!
@Lunar:
Bitte nicht so ernst nehmen.
Klar haben die systemeigenen Generatoren riesige Perioden und sind
viel schneller. Nicht umsonst habe ich "echten" in Anführungszeichen
gesetzt. Es gibt kaum einen Unterschied zwischen "Pseudo"
und "echt".
Interessant fand ich diesen Artikel, der zeigt, wie man schlechte
Pseudozufallszahlengeneratoren entlarven kann:
http://www.heise.de/security/Verschusse ... kel/103093
Gruss
pyFan
Verfasst: Montag 30. März 2009, 22:10
von problembär
Subjektiv finde ich's immer noch etwas zufälliger, wenn ich vorher nochmal
mache ...
Gruß
Verfasst: Montag 30. März 2009, 22:44
von lunar
pyFan, entschuldige, da hab ich wohl ein bisschen was falsch verstanden
pyFan hat geschrieben:Klar haben die systemeigenen Generatoren riesige Perioden und sind viel schneller.
Echte Zufallszahlen haben keine Periode.
@problembär
Subjektiv mag ja sein, objektiv gesehen ist das völlig überflüssig, da random.seed() beim Import des Moduls bereits aufgerufen wird. ".seed()" ist nur dann sinnvoll, wenn man eigene Exemplare der Zufallsklassen erzeugt.
Verfasst: Montag 30. März 2009, 23:36
von Darii
lunar hat geschrieben:Subjektiv mag ja sein, objektiv gesehen ist das völlig überflüssig, da random.seed() beim Import des Moduls bereits aufgerufen wird. ".seed()" ist nur dann sinnvoll, wenn man eigene Exemplare der Zufallsklassen erzeugt.
Und gefährlich ist es auch noch, wenn man zu oft seeded. Dann sind die Zahlen im schlimmsten Fall korreliert.