Zufallszahlen!!

Code-Stücke können hier veröffentlicht werden.
Antworten
search
User
Beiträge: 67
Registriert: Donnerstag 24. April 2008, 10:03
Wohnort: In Deutschland

Hallo zusammen,
ich beschäftige mich gerade ein wenig mit dem Thema Zufallszahlen. So wie ich das sehe, und auch gelesen habe, ist es gar nicht möglich "richtige" Zufallszahlen mit dem PC zu erzeugen. Die von Computern erzeugten Zahlen nennt man ja "Pseudozufallszahlen". Unter Python gibt es ja das random-modul!! Habe da mal ein par Sachen ausprobiert:

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: utf-8 -*-

import random
zufall = random.randrange(0,2147483647)  
zufall_1 = random.randrange(0,1147483647)
ergebniss_1 = zufall ^ zufall_1
print ergebniss_1
Habt ihr für Zufallszahlen noch bessere Vorschläge, oder wie erzeugt ihr den eure Zufälle :-) ????
Gruß
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Ich benutze immer random.random(). Mehr nicht

Ich denke die Entwickler haben sich schon was bei dem Zufallsgenerator überlegt, da müssen wir nicht von Hand noch nachbessern.

Pseudozufallszahl bleibt eine Pseudozufallszahl, auch wenn 2mal der Generator in Anspruch genommen wird.

Gruss
search
User
Beiträge: 67
Registriert: Donnerstag 24. April 2008, 10:03
Wohnort: In Deutschland

Hallo rayo, ist mir schon klar das eine pseudozahl eben nur eine pseudozahl bleibt, egal wie oft random benutzt wird. War nur so eine Idee!! Ich wollte evtl. versuchen einfach die Streuung der Zahlen zu erhöhen.
Gruß
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Erstaunlich ist ja, dass immer Personen, die kaum Ahnung von Numerik haben, Zufallszahlen "zufälliger" machen wollen. Interessanterweise konvergieren diese Verfahren teilweise oder bilden ausgeprägte Cluster. Also bleib einfach mal bei der Standardimplementierung ;-) Das Erzeugen von Pseudozufallszahlen geschieht ja nicht ganz zufällig, ein wenig Mathematik steckt da schon hinter.
search
User
Beiträge: 67
Registriert: Donnerstag 24. April 2008, 10:03
Wohnort: In Deutschland

Hallo EyDu, ich finde es erstaunlich, hier im Forum, dass es auf ganz normale Fragen immer irgendwelche blöden Kommentare als Antwort gibt. Ich weiß dass ich keine (oder nur sehr wenig) Ahnung von der Materie habe. Deshalb habe ich auch gefragt was ihr bei dem Thema so macht, oder wie ihr das mit den Zufalsszahlen macht!!!!
Aber es ist wohl so, dass hier im Forum nur Genies Fragen stellen dürfen, und die Dummies einfach keine (oder nur blöde) Antworten bekommen. Ich würde sagen bleibt weiterhin ruhig in eurem dähmlichen Glasturm sitzen und quatscht euch gegenseitig eure Genialität in die Ohren.
Viel Spaß dabei!!!! :evil:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

rayo hat geschrieben:Ich denke die Entwickler haben sich schon was bei dem Zufallsgenerator überlegt, da müssen wir nicht von Hand noch nachbessern.
Immerhin wird da der Mersenne Twister verwendet, welcher sicherlich zu den besseren Algorithmen zählt, die es momentan gibt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Tut mir Leid, dass mein Kommentar falsch rübergekommen ist. Ich wollte nur deutlich machen, dass auch bei so alltäglichen Dingen wie Zufallszahlen sehr unerwartete Sachen passieren können. Und das ist sicher nicht nur bei dir so, auch allen anderen tappen mal in solche Fallen. Außer natürlich BlackJack, der macht per Definition keine Fehler :P
search
User
Beiträge: 67
Registriert: Donnerstag 24. April 2008, 10:03
Wohnort: In Deutschland

OK, Entschuldigung angenommen. Ich bin eben neugierig und wollte einfach mehr über das Thema Zufallszahlen erfahren. Vor allem seit ich die ganzen Infos im Netz über das Thema gelesen habe, ist doch recht kompliziert!!!!
Gruß :shock:
BlackJack

Ob man mit einem Computer "richtige" Zufallszahlen erzeugen kann, hängt nicht unwesentlich davon ab, wie man "richtig" definiert. Moderne Betriebsysteme sammeln "externe" Informationen, wie Zeiten zwischen Tastaturanschlägen oder Mausbewegungen, und stellen Zufallszahlen zur Verfügung, die diese Informationen mit einbeziehen. Diese Zahlen sind nicht so einfach vorher zu sagen, selbst wenn man den Algorithmus kennt.

@EyDu: Manchmal baue ich absichtlich Fehler ein, um zu sehen, ob's jemand merkt. ;-)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

BlackJack hat geschrieben:@EyDu: Manchmal baue ich absichtlich Fehler ein, um zu sehen, ob's jemand merkt. ;-)
Diesen Satz müsst man eigentlich mal an den Anfang einer Klausur setzen :-)
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Oder als Argument bei der Auswertung anbringen, warum man schon wieder ne 6 geschrieben hat :D

„Ich wollt ja nur mal sehen ob sies' auch sehen„ – kommt bestimmt gut :)
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

ich denke die Entwickler haben sich schon was bei dem Zufallsgenerator überlegt,...
von was träumst du nachts?
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

wie Zufallszahlen sehr unerwartete Sachen passieren können.
auf dem rechner nicht. der timer tickt immer gleich.
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Diesen Satz müsst man eigentlich mal an den Anfang einer Klausur setzen
6....setzen.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Nicht schlecht sechsrad, drei Posts und fast drei ganze Sätze ;-) Vielleicht solltest du dich wirklich mal mit der Erzeugung von Zufallszahlen befassen, bevor du hier solche Kommentare ablässt. Es ist gar nicht so einfach, eine glaubwürdige Verteilung hinzubekommen.
search
User
Beiträge: 67
Registriert: Donnerstag 24. April 2008, 10:03
Wohnort: In Deutschland

Danke für die Info Blackjack! Damit kann ich was anfangen, sonst noch jemand mit Ideen???
Gruß
lunar

Ich werfe nochmal meinen Lieblings-Zufallszahlen-Trick ``random = random.SystemRandom()`` in den Raum. Damit wird ``os.urandom`` zur "Erzeugung" von Zufallszahlen verwendet. Von Windows habe ich keine Ahnung, der Zufallsgenerator des Linux-Kernels, der von os.urandom indirekt angesprochen wird, ist auf jeden Fall sehr, sehr gut. Er benutzt Ereignisse in der Hardware, um Zufallszahlen zu erzeugen. Außerdem benutzt er eventuell eingebaute Zusatzhardware. Moderne Intel-Boards haben in teureren Ausführungen beispielsweise einen Hardware-Zufallszahlengenerator (fragt mich aber nicht, wie die funktionieren, ich bin Programmierung und kein E-Techniker ;) )
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

sechsrad hat geschrieben:
rayo hat geschrieben: ich denke die Entwickler haben sich schon was bei dem Zufallsgenerator überlegt,...
von was träumst du nachts?
Bitte einen Link oder Quelle die belegt das die Python Entwickler bei der Implementierung der Zufallszahlen (grob)fahrlässig gehandelt haben.
Danke.

Back2Topic:
Ich habe etwas über "echten Zufall" in der Quantenphysik gesucht, aber nicht das gefunden, was ich vor einiger Zeit gelesen habe. Das folgende, was ich dann aber gefunden habe, ist auch nicht schlecht.


http://homepage.univie.ac.at/Franz.Emba ... index.html
Auszug aus der genannten Website hat geschrieben:Wir haben es hier mit einer Rolle des Zufalls zu tun, die weit über die Rolle des Zufalls in der klassischen Physik hinausgeht. Betrachten wir im Kontrast dazu den Zufall, wie er im Glücksspiel verwendet wird. Wenn wir etwa einen Würfel haben, so wird jede der Zahlen 1-6 rein zufällig auftauchen, aber im Mittel etwa gleich oft. Für jeden einzelnen Wurf könnten wir uns aber im Prinzip genau überlegen und erklären, warum gerade diese Zahl, die wir beobachten, auftritt. Dies hängt etwa ab davon, wie wir unsere Hand drehen, wie die Oberfläche des Tisches beschaffen ist usw. Es läßt sich also eine Erklärung konstruieren, auch wenn wir nicht genau wissen, wie der Prozeß tatsächlich abgelaufen ist. Der Zufall ist in diesem Fall ein subjektiver. Er ist auf nicht ausreichende Kenntnis der Details zurückzuführen. Eine solche Erklärung ist in der Quantenphysik nicht mehr möglich. Hier ist eine genaue Kenntnis der Details im Prinzip nicht möglich, da solche Details nicht existieren. Der Zufall in der Quantenphysik ist daher ein objektiver. Es ist nicht nur unser Unwissen, sondern das Verhalten des Einzelsystems ist tatsächlich in keiner Weise in der Natur vorgegeben.
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

sechsrad hat geschrieben:
ich denke die Entwickler haben sich schon was bei dem Zufallsgenerator überlegt,...
von was träumst du nachts?
Was genau willst du mir sagen?
BlackJack

@rayo: Bitte nicht füttern. :-)

Edit (Leonidas): Restliche Diskussion in "Wissenschaftliche Theorie vs. Kreationismus" abgetrennt.
Antworten