Ich suche nach einer Möglichkeit, Zufallszahlen zu generieren , die gleichmäßig verteilt zu sein scheinen - und jeder Test zeigt, dass sie einheitlich sind - mit der Ausnahme, dass sie gleichmäßiger verteilt sind als echte einheitliche Daten .
Das Problem, das ich mit den "wahren" einheitlichen Zufällen habe, ist, dass sie sich gelegentlich zusammenballen. Dieser Effekt ist bei einer geringen Stichprobengröße stärker. Grob gesagt: Wenn ich in U [0; 1] zwei Gleichförmige Zufälle zeichne, liegt die Wahrscheinlichkeit bei 10%, dass sie in einem Bereich von 0,1 liegen, und bei 1%, dass sie in einem Bereich von 0,01 liegen.
Daher suche ich nach einer guten Möglichkeit, um Zufallszahlen zu generieren, die gleichmäßiger verteilt sind als gleichmäßige Zufälle .
Anwendungsbeispiel: Angenommen, ich mache ein Computerspiel und möchte einen Schatz nach dem Zufallsprinzip auf einer Karte platzieren (ohne Rücksicht auf irgendetwas anderes). Ich möchte nicht, dass der Schatz an einem Ort ist, er sollte überall auf der Karte sein. Wenn ich mit einheitlichen Zufällen beispielsweise 10 Objekte platziere, sind die Chancen nicht so gering, dass es 5 oder so nahe beieinander gibt. Dies kann einem Spieler einen Vorteil gegenüber einem anderen verschaffen. Denken Sie an Minensucher, die Chancen stehen gut, dass Sie wirklich Glück haben und mit einem Klick gewinnen.
Ein sehr naiver Ansatz für mein Problem besteht darin, die Daten in ein Raster aufzuteilen. Solange die Anzahl groß genug ist (und Faktoren hat), kann man auf diese Weise eine zusätzliche Gleichförmigkeit erzwingen. Anstatt also 12 Zufallsvariablen aus U [0; 1] zu ziehen, kann ich 6 aus U [0; 0,5] und 6 aus U [0,5; 1] oder 4 aus U [0; 1/3] + 4 ziehen von U [1/3; 2/3] + 4 von U [2/3; 1].
Gibt es eine bessere Möglichkeit, diese zusätzliche Gleichmäßigkeit in die Uniform zu bringen? Es funktioniert wahrscheinlich nur für Batch-Zufälle (beim Zeichnen eines einzelnen Zufalls muss ich natürlich den gesamten Bereich berücksichtigen). Insbesondere kann ich die Datensätze danach erneut mischen (es sind also nicht die ersten vier ab dem ersten Drittel).
Wie wäre es inkrementell? Also ist die erste auf U [0; 1], dann zwei von jeder Hälfte, eine von jeder dritten, eine von jeder vierten? Wurde dies untersucht und wie gut ist es? Möglicherweise muss ich vorsichtig sein, um unterschiedliche Generatoren für x und y zu verwenden, damit sie nicht korrelieren (das erste xy befindet sich immer in der unteren Hälfte, das zweite in der linken Hälfte und im unteren Drittel, das dritte im mittleren Drittel und im oberen Drittel. Es ist also zumindest eine zufällige Bin-Permutation erforderlich, und auf lange Sicht wird es wohl zu gleichmäßig sein.
Gibt es als Nebenknoten einen bekannten Test, ob eine Verteilung zu gleichmäßig ist, um wirklich gleichmäßig zu sein? Testen Sie also "echte Uniform" im Vergleich zu "jemand hat die Daten durcheinander gebracht und die Artikel gleichmäßiger verteilt". Wenn ich mich richtig erinnere, kann Hopkins Statistic dies messen, aber kann es auch zum Testen verwendet werden? Auch ein etwas inverser KS-Test: Liegt die größte Abweichung unter einem bestimmten erwarteten Schwellenwert, sind die Daten zu gleichmäßig verteilt?