Random Nummer zwischen 1 und 100 generieren
-
Sind Hyperebenen ein Faktor dafür, wie gleichverteilt die Werte eines RNGs sind?
-
Das ist also ein dreidimensionaler Plot der generierten Zufallszahlen mit RANDU, ja?
One of us recalls producing a "random" plot with only 11 planes, and being told by his computer center's programming consultant that he had misused the random number generator: "We guarantee that each number is random individually, but we don't guarantee that more than one of them is random." Figure that out.
:'D
-
otze schrieb:
Am besten einmal hier drauf jagen:
http://en.wikipedia.org/wiki/TestU01Lauter Linkerfehler. Das gebe ich mir nicht weiter.
edit: Doch, geht, wenn ich sein Makefile und seine libs einfach ignoriere und sich dafür seine *.c alle ins Projekt haut. Ich lass dann man std::rand, std::default_random_engine, std::mt19937, XORSHIFT und MWC antreten.
-
Arcoth schrieb:
Sind Hyperebenen ein Faktor dafür, wie gleichverteilt die Werte eines RNGs sind?
Nein, es geht um eine bestimmte Art von Korrelation zwischen aufeinander folgenden Werten (ganz simpel ausgedrückt so etwas wie "wenn der vorherige wert klein war, dann wird der nächste Wert eher groß"). Teilweise eben auch von Werten, die hunderte von Ziehungen auseinander liegen. Bei guten Zufallszahlengeneratoren darf es so etwas natürlich nicht geben (denn echter Zufall hätte dies nicht) und es gibt auch durchaus konkrete, negative Effekte, die auftreten können, wenn man Zufallszahlen mit solchen Korrelationen in bestimmten Anwendungen einsetzt.
-
Also ein Indikator für Muster in den Zahlenfolgen?
denn echter Zufall hätte dies nicht
Woher weißt du das? Echter Zufall ist doch zufällig?
Edit: Wer weiß schon, wie sich echter Zufall verhält? Den gibt es doch laut der klassischen Mechanik in diesem Universum gar nicht, oder?es gibt auch durchaus konkrete, negative Effekte, die auftreten können, wenn man Zufallszahlen mit solchen Korrelationen in bestimmten Anwendungen einsetzt.
Also das ist ein sehr überzeugendes Argument. Habe mir noch gar nicht Gedanken darüber gemacht, dass natürlich je nach Anwendungsfall eine bestimmte Korrelation der Werte von Bedeutung sein kann (ich nahm an, nur das Große und Ganze zählt, also der Durchschnitt).
-
Arcoth schrieb:
Also ein Indikator für Muster in den Zahlenfolgen?
Die hier angegebene Anzahl der Hyperebenen ist so etwas wie die Anzahl aufeinander folgender Werte, in denen man keine solchen Muster erkennen kann.
denn echter Zufall hätte dies nicht
Woher weißt du das? Echter Zufall ist doch zufällig?
Das ist per Definition so. Wenn die Zahlen Muster zeigen, sind sie nicht zufällig.
-
Das ist nicht ganz richtig. Muster müssen auch zufällig entstehen können. Beispielsweise ist es ja auch möglich, 100mal hintereinander die 6 zu würfeln. Man kann alledings die Wahrscheinlichkeiten dafür, dass das zufällig passiert und dass das aufgrund gezinkter Würfel passiert, miteinander vergleichen und je nachdem einer der beiden Erklärungen den Vorzug geben...
-
Bashar schrieb:
Das ist nicht ganz richtig.
Da hast du mich auch anders verstanden, als es gemeint ist.
-
Darf ich mal ganz dreist zwischenfragen, wie C++11 die Sache mit dem Multithreading und den Zufallszahlen löst, wenn es schon angesprochen wurde?
Von meinem Verständnis her müssen die verschiedenen Thrads eigentlich alle den gleichen (P)RNG verwenden, um zu gewährleisten, dass die Verwendung der Zufallszahlen in den verschiedenen Threads auch sauber ist.
Das ist aber zugleich der Flaschenhals, wenn die verschiedenen Threads auf den gleichen (P)RNG zugreifen müssen.
Eine schmutzige Lösung ist jedem Thread einen eigenen (P)RNG zu geben und ihn jeweils mit einem anderen Seed zu initialisieren.
Also Antwort darauf hatte ich angefangen den Dynamic Creator zu verwenden.
Aber wenn C++11 verschiedene Threads sauber mit Zufallszahlen versorgen kann, dann würde ich das natürlich vorziehen und könnte mir diesen Dynamic Creator sparen.
Gruß,
-- Klaus.
-
Klaus82 schrieb:
Von meinem Verständnis her müssen die verschiedenen Thrads eigentlich alle den gleichen (P)RNG verwenden, um zu gewährleisten, dass die Verwendung der Zufallszahlen in den verschiedenen Threads auch sauber ist.
Nein, müssen sie nicht.
-
manni66 schrieb:
Klaus82 schrieb:
Von meinem Verständnis her müssen die verschiedenen Thrads eigentlich alle den gleichen (P)RNG verwenden, um zu gewährleisten, dass die Verwendung der Zufallszahlen in den verschiedenen Threads auch sauber ist.
Nein, müssen sie nicht.
Aha...
Aber wenn alle meine Threads jeweils ihren eigenen PRNG verwenden, der mit demselben seed initialisiert ist, dann werden alle Threads dasselbe Ergebnise liefern. Dann kann ich es mir auch sparen.

Gruß,
-- Klaus.
-
Klaus82 schrieb:
Aber wenn alle meine Threads jeweils ihren eigenen PRNG verwenden, der mit demselben seed initialisiert ist, dann werden alle Threads dasselbe Ergebnise liefern. Dann kann ich es mir auch sparen.

Gruß,
-- Klaus.dann seede sie halt unterschiedlich? kannst auch nur einen seed benutzen und die prngs in den anderen threads mit dem ersten resultat des geseedeten prngs seeden.