Zufallszahlen

  • jup zufallszahlen sind echt ein interessantes thema.
    eben deshalb weil man sie nicht einfach erzeugen kann.

    zu pseudozufallszahlen denke ich wurde alles gesagt. wollte hier nur noch ne recht interessante news von heise posten.
    http://www.heise.de/newsticker/mel…men-995035.html

    da versuchen sie auch die ersten "echten" zufallszahlen zu generieren.
    durchlesen dann kann man sich vllt etwas besser vorstellen wie schwer es ist ;)


  • Ich hab mal von einer Möglichkeit gehört bei der das Hintergrundrauschen der Soundkarte für die Erzeugung von Zufallszahlen genommen wurde.
    Das Rauschen dort entspricht in der Regel einem weißen Rauschen.
    Also einem Mischsignal bei dem jede Frequenz mit der selben Häufigkeit auftritt.
    Das wär dann schon eher als reine Zufallszahl zu bezeichnen.


    Und dadurch wäre das Kriterium "unabhängig" erfüllt?
    Ich meine nein, allerdings lässt sich wahrscheinlich eine sehr gute (gleiche) Häufigkeitsverteilung erzielen.

    P.S. Ist jetzt schon mehr ein akademisches Problem ;)

  • Naja unabhängig im statistischen Sinne.
    Das Rauschen ensteht durch Störeinflüsse durch elektromagnetische Umgebungsfelder.
    Diese sind so komplex das sie schon gut als unvorhersehbar gelten.
    Natürlich nicht ideal - deswegen sind es ja dennoch Pseudozufallszahlen.
    Aber in ihrer Güte erzeugen solche physikalische Vorgänge wohl bessere Pseudozufallszahlen als z.B. der angesprochene Mensch der sich einfach mal paar Zahlen ausdenkt.

    Ansonsten hab ich jetzt mal einen Chi²-Test auf Gleichverteilung über die Random-Funktion implementiert:

    Spoiler anzeigen
    [autoit]

    Global Const $N = 1e5
    Global Const $dIrrtumswahrscheinlichkeit = 0.005
    Global Const $dChiQuantil = 23.59 ; (Für df=9 und alpha = 0.005 aus Tabelle: http://psydok.sulb.uni-saarland.de/volltexte/2004…tml/chivert.htm)

    [/autoit] [autoit][/autoit] [autoit]

    Global $Erwartungswert = $N / 10 ; Gibt die zu erwartende absolute Häufigkeit einer der 10 Zufallszahlen bei einer Gleichverteilung an

    [/autoit] [autoit][/autoit] [autoit]

    Global $aHaeufigkeit[10]
    Global $dAbwSumme = 0

    [/autoit] [autoit][/autoit] [autoit]

    ; Erzeuge die Stichprobe der Zufallszahlen und ermittle ihre absolute Häufigkeit
    For $i = 1 To $N
    $aHaeufigkeit[Random(0, 9, 1)] += 1
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; Berechne die Summe aller normierten Abweichungen
    For $i = 0 To 9
    $dAbwSumme += (($aHaeufigkeit[$i] - $Erwartungswert) ^ 2) / $Erwartungswert
    Next

    [/autoit] [autoit][/autoit] [autoit]

    If $dAbwSumme < $dChiQuantil Then
    ; Nullhypothese angenommen
    MsgBox(0, "", "Mit einer Irrtumswahrscheinlichkeit von " & 100 * $dIrrtumswahrscheinlichkeit & "% handelt es sich um eine Gleichverteilung.")
    Else
    ; Nullhypothese verworfen
    MsgBox(0, "", "Es konnte keine Gleichverteilung nachgewiesen werden.")
    EndIf

    [/autoit]

    2 Mal editiert, zuletzt von AspirinJunkie (12. Mai 2010 um 11:04)

  • jup zufallszahlen sind echt ein interessantes thema.
    eben deshalb weil man sie nicht einfach erzeugen kann.

    zu pseudozufallszahlen denke ich wurde alles gesagt. wollte hier nur noch ne recht interessante news von heise posten.
    http://www.heise.de/newsticker/mel…men-995035.html

    da versuchen sie auch die ersten "echten" zufallszahlen zu generieren.
    durchlesen dann kann man sich vllt etwas besser vorstellen wie schwer es ist ;)

    Dazu fallen mir nur die Videos auf Youtube zu Quantenphysik ein :D
    Seeeehr interessantes Thema, fast so interessant wie die Relativitätstheorie ;)

  • Mausbewegung eines Nutzers in einer bestimmten Zeit oder ähnliches sind halt auch wieder "steuerbar" und damit auch vorhersehbar.
    Benutzereingaben sind also keine sauberen Zufallsereignisse (der Nutzer kann sie ja steuern).

    Außer der nutzer hat keine ahnung, das er eine zufallszahl generiert.

  • Zitat von bocky


    Die gleiche Häufigkeitsverteilung allerdings schon.
    Durch sie bildet sich eine Asymptote. Bsp.: y=4
    Ich kann Funktionen allerdings verändern, in dem ich ihre Asymptote verändere.
    Bsp.: y=-64^(-1)*x^2+4


    Das war nur eine Gedankenspielerei, wie ich mir eine Gleichverteilung, die aus Pseudo Zufallszahlen besteht, an ein bestimmtest Muster anpassen kann. Y stellt eine Funktion von x dar. Die Funktion sollte sich aber dabei aus den Zahlen definieren.
    (modifizierte Funktionsrekonstruktion)
    Dabei werden die sowieso schon unechten Zufallszahlen zu Funktionswerten degradiert, was aber hinsichtlich von Anwendungen kein Problem ist.

    Der Artikel von heise ist interessant.
    Mich stört in dem Artikel nur ein Satz.

    Zitat


    Beide Atome wurden dazu zufällig gedreht und von ihnen emittierte Photonen gemessen.

    Zitat von Jonathan


    Außer der nutzer hat keine ahnung, das er eine zufallszahl generiert.


    Selbst dann dürfte das kein reiner Zufall sein. Menschen neigen in Gewohnheiten zu verfallen.
    Somit könnten auch längere aufgezeichnete Mausbewegungen sehr periodisch sein.
    Außer die Katze setzt/legt sich auf die Tastatur oder spielt mit der Maus.

  • Zitat

    Außer die Katze setzt/legt sich auf die Tastatur oder spielt mit der Maus.


    Das ist der Punkt. Man muss dazu ein unwissender Außenstehender sein ;).
    Über ein Thema wie den Zufall kann man lange diskutieren, also gebt euch mit der Random Funktion zufrieden! :P

  • Das war nur eine Gedankenspielerei, wie ich mir eine Gleichverteilung, die aus Pseudo Zufallszahlen besteht, an ein bestimmtest Muster anpassen kann.

    Ich glaub langsam wirds heller bei mir.
    Du willst keine gleichverteilte Zufallszahlen sondern Normalverteilte?
    Also quasi normalverteilte Zufallszahlen aus gleichverteilten (wie sie z.B. Random liefert) generieren?
    Wenn dem so ist dann helfen dir vielleicht folgende Algorithmen weiter: >>Klickmich<<
    Hab ich selbst aber noch nie implementiert - würde mich aber mal interessieren.
    Oder ich hab schon wieder nicht verstanden was du willst...

    Edit: Ah nein - du willst nicht nur normverteilte erzeugen sondern komplett beliebige Funktionen?

  • Im Prinzip beliebige Funktionen.
    Gleich- und Normalverteilung sind dann nur auswahlweise Beispiele.
    Allerdings sind alle nichtgleichverteilten keine Zufallszahlen per Definition mehr.

    Ich werd' mich mal am verlängerten Wochenende ransetzen. Mal sehen ob ich meine Gedanken so umsetzen kann oder ob mein Ansatz zu kompliziert ist.

  • Allerdings sind alle nichtgleichverteilten keine Zufallszahlen per Definition mehr.

    Naja eigentlich nicht unbedingt würde ich sagen.
    Klar - per Definition schon aber eine Normalverteilung basiert ja auf der Zufälligkeit von z.B. Messfehlern um einen Mittelwert.
    Nur dass die Wahrscheinlichkeit eines Eintretens mit steigender Entfernung zum Mittelwert abnimmt.
    Ohne diesen Zufallscharakter dieser normalverteilten Zahlen würde das komplette Fachgebiet der Ausgleichungsrechnung hinfällig.
    Na egal.
    Eine Umwandlung von gleichverteilten Zufallszahlen in beliebige Häufigkeitsverteilungen dürfte, wie ich für mich persönlich einschätze, mathematisch doch etwas anspruchsvoll sein.
    Halte uns dennoch bitte auf dem laufenden in wie weit du damit Erfolg hast - interessieren würde es mich schon sehr.

  • Wenn ich auch noch mal was sagen darf:
    Die Funktion Random ist von Profis geschrieben, und daher denke ich VOLKOMMEN zufällig aufgebaut, nicht nur aus einem Zeitfaktor.
    Guckt einmal in die Hilfe unter der Funktion 'Random([min, [max]])'

    Meine Werke


    EasyScreen (teilweise Crocoframe): <EasyScreen>
    Spotify2Title: <Spotify2Title> (zur Info, dies ist KEIN Spotify-Downloader! Wer das dachte... :rofl: sowas gibts hier nicht :thumbdown: )

  • *senfdazugeb*
    Genau wie das schon angesprochene Hintergrundrauschen der Soundkarte, kann auch das Rauschen von (abgedunkelten) Kamerasensoren benutzt werden, um Zufallszahlen zu erzeugen. Da dies ein zeitunabhängiger physikalischer Effekt ist, welcher nicht vorausgesagt werden kann, ist das schon ziemlich "zufällig". vgl. atomarer Zerfall.
    Übrigens finde ich es interessant, daß bei Zufall automatisch von einer Normal/Gleichverteilung ausgegangen wird! Mal davon abgesehen, daß im Falle eines Zufalls der Zufall keinerlei Ahnung von Statistik hat, ist der Zahlenbereich bzw die Definitionsmenge für das zufällige Ereignis eigentlich nur 0 und 1.
    Entweder ein Ereignis passiert, oder eben nicht. Das was wir nun Zufall nennen, ist nur die (beliebig erweiterbare) Folge von Nullen und Einsen, um einen größeren Wertebereich festzulegen.
    Im Prinzip geht es um die statistische Wahrscheinlichkeit des Eintretens eines Ereignisses.
    Die Zeit(dauer) erscheint uns nur nur deswegen zufällig, weil wir sicher wissen, daß man diesen Faktor (die vergangene Zeit) sicher nicht beeinflussen kann (in der Regel zumindest).
    Gleichzeitig beeinflusst die Zeit aber alles andere in unserer Umgebung! Die Zeit beeinflusst gewissermassen alles! Daher bietet sich die Zeit als "Zufallsgenerator" an.
    Chaostheorie^^
    Wenn man nun davon ausgeht, daß "Zufall" nur eine beliebig (bzw. zufällig) große Folge von Nullen und Einsen ist, dann ist der Computer für die Ermittlung eines Zufalls prädestiniert, denn Nullen und Einsen sind sein Geschäft! Eigentlich muß man nur genügend Nullen und Einsen aus verschiedensten Quellen sammeln um dann irgendwann festzulegen, daß die gesammelte Menge reicht, um herauszufinden, ob mehr Nullen (Ereignis tritt nicht ein) , oder mehr Einsen (Ereignis tritt ein) vorliegen.
    Ein schönes Beispiel wäre zzt. die Menge der in der letzten Sekunde von einem Internetknoten weitergeleiteten Datenpakete.