Können wir mit irrationalen Zahlen wie π und e Zufallszahlen erzeugen?


21

Irrationale Zahlen wie , und \ sqrt {2} haben eine eindeutige und sich nicht wiederholende Folge nach dem Komma. Wenn wir die n- te Ziffer aus solchen Zahlen extrahieren (wobei n die Anzahl der Aufrufe der Methode ist) und eine Zahl mit den Ziffern erstellen, wie sie ist, sollten wir dann keinen perfekten Zufallszahlengenerator erhalten? Wenn wir zum Beispiel \ sqrt {2} , e und \ pi verwenden , ist die erste Zahl 123, die zweite 471, die nächste 184 und so weiter.πe2nn2eπ


30
Sie haben eine seltsame Definition von "zufällig" in Ihrem Kopf. "Zufällig" bedeutet "unvorhersehbar". Wie ist Ihre Sequenz unvorhersehbar? Welche Definition von "zufällig" haben Sie im Sinn? Vielleicht hat das, was Sie "zufällig" nennen, einen anderen Namen.
Eric Lippert

7
Beachten Sie, dass der Zapfenalgorithmus verwendet werden kann, um eine beliebige hexadezimale Ziffer in pi zu generieren, ohne dass vorherige Ziffern generiert werden müssen.
rcgldr

10
@EricLippert Sind nicht alle Pseudozufallszahlengeneratoren vorhersehbar?
Federico Poloni

7
Der Begriff ist ein paar Mal vorgekommen: Dies ist eine "Pseudo-Zufallszahl", keine "Zufallszahl". Es ist eine Zahl, die algorithmisch generiert wird (also nicht zufällig), aber viele wünschenswerte Eigenschaften hat, die Zufallszahlen haben. Ein weiterer Algorithmus ist der "NYC-Telefonbuch" -Algorithmus, bei dem Sie die Liste der Telefonnummern in alphabetischer Reihenfolge durchgehen und die letzte Ziffer von jeder einzelnen Ziffer abrufen. Nicht zufällig, sondern pseudozufällig mit ein paar recht netten statistischen Verhaltensweisen!
Cort Ammon - Setzen Sie Monica

5
"Pseudo" bedeutet "ähnlich, aber nicht". Pseudozufallszahlen sind also ähnlich, aber keine Zufallszahlen. Ich folge hier also nicht Ihrem Gedankengang. Nun haben PRNGs mit Kryptostärke die wünschenswerte Eigenschaft, dass, wenn der interne Zustand dem Angreifer unbekannt ist, kein statistischer Test, den wir besitzen, ein Krypto-PRNG von einem echten RNG unterscheiden kann, und dies schließt deren mangelnde Vorhersagbarkeit ein. Aber die Ziffern von pi haben diese Eigenschaft nicht; Sie sind sehr vorhersehbar.
Eric Lippert

Antworten:


17

Der offensichtlichste Nachteil ist die unnötige Komplexität von PRNG-Algorithmen, die auf irrationalen Zahlen basieren. Sie erfordern viel mehr Berechnungen pro erzeugter Ziffer als beispielsweise eine LCG; und diese Komplexität nimmt normalerweise zu, je weiter Sie in der Sequenz voranschreiten. Die Berechnung von 256 π-Bits beim Zwei-Billiarden-Bit dauerte auf 1000 Computern 23 Tage (im Jahr 2010) - eine ziemlich unerschwingliche Komplexität für ein RNG.


47

Für jede vernünftige Definition von perfekt ist der von Ihnen beschriebene Mechanismus kein perfekter Zufallszahlengenerator.

  • Sich nicht zu wiederholen ist nicht genug. Die Dezimalzahl wiederholt sich nicht, ist jedoch ein schrecklicher Zufallsgenerator, da die Antwort "immer" null, gelegentlich eins und nie etwas anderes ist.0,101001000100001

  • Wir wissen nicht, ob jede Ziffer in der Dezimalerweiterung von oder  gleich häufig vorkommt (obwohl wir vermuten, dass dies der Fall ist).πe

  • In vielen Situationen müssen Zufallszahlen unvorhersehbar sein (wenn Sie eine zufällige Person fragen, was "zufällig" bedeutet, sagen sie wahrscheinlich etwas über Unvorhersehbarkeit aus). Die Ziffern bekannter Konstanten sind vollständig vorhersehbar.

  • Normalerweise möchten wir Zufallszahlen relativ schnell generieren, aber die Generierung aufeinanderfolgender Ziffern mathematischer Konstanten ist in der Regel recht teuer.

  • Es ist jedoch wahr, dass die Ziffern von und  statistisch zufällig aussehen, in dem Sinne, dass jede mögliche Ziffernfolge ungefähr so ​​oft vorkommt, wie sie sollte. So kommt zum Beispiel jede Ziffer fast einmal in zehn vor; Jede zweistellige Folge kommt einer von hundert sehr nahe und so weiter.πe


11
Für den dritten Punkt muss es eine Art „geheimen“ Input für Ihren Generierungsprozess geben, damit dieser unvorhersehbar ist (der Generierungsprozess selbst sollte deterministisch sein, wenn wir uns nicht auf einen weiteren Zufallszahlengenerator verlassen möchten.). Diese zusätzliche Eingabe wird oft als Startwert bezeichnet .
Diskrete Eidechse

6
@Discretelizard Dies ist wahr, aber es gibt nicht viel Spielraum für das Seeding über "Rückgabe aufeinanderfolgender Ziffern beginnend mit Position " hinaus. Mit der Zeit haben Sie gesehen , 2 lügt s Ziffern, tritt diese Sequenz nur ein paar Mal innerhalb der ersten s 2 Ziffern von , so dass es innerhalb der ersten einzigartig ist Ziffern mit hohen Wahrscheinlichkeit und Sie kennen die Samen. s2Logss2sπs
David Richerby

2
@Barmar: An diesem Punkt muss man sich fragen, ob diese Technik wirklich performanter (und platzsparender) ist als ein "Standard" -PRNG.
Kevin

2
Die Ziffern von pi oder e sind völlig unvorhersehbar, zumal der Betrachter / Empfänger / Code-Breaker usw. keine Ahnung hat, wie weit Sie in der Reihenfolge sind, in der Sie sich bereits befinden. Wenn Sie mit der Ziffer 237423 der Sequenz beginnen, dauert es so lange, bis Sie herausgefunden haben, dass es zufällig ist.
Reverse Engineer

10
@ DaveBoltman Wenn wir nicht so etwas wie Kryptographie machen, wird sich niemand genug darum kümmern, es herauszufinden. Wenn wir Kryptographie betreiben, wird normalerweise davon ausgegangen, dass Ihr Gegner weiß, welchen Algorithmus Sie verwenden. In diesem Fall wird angegeben, von welcher irrationalen Zahl die Sequenz stammt und wie Sie die Ziffern auswählen, mit Ausnahme von Parametern wie msgstr "bei Ziffer ". Wenn der Gegner nicht weiß, welche Nummer Sie verwenden, könnte die nächste Ziffer buchstäblich alles sein, aber dann raten sie, dass es √ ists und das Spiel ist vorbei. mein Geburtstag
David Richerby

29

Es ist kryptografisch nutzlos, da ein Gegner jede einzelne Ziffer vorhersagen kann. Es ist auch sehr zeitaufwendig.


11
OP erwähnt niemals Kryptographie ...
AnoE

13
@AnoE Also? Dass dieser Prozess kryptografisch nutzlos wäre, ist immer noch relevant, da Krypto ein begeisterter Zufallsnutzer ist. Wenn Sie die Geräte aufrufen /dev/randomund /dev/urandomjemand wird ausnahmslos Kryptografie aufrufen.
Greg Schmit - Wiedereinsetzung von Monica

6
Sie werden erstaunt sein, wie nutzlos die kryptografische Sicherheit bei der PRNG-Generierung in Echtzeit ist. In GPU-PRNGs werden häufig irrationale Zahlen verwendet. In vielen Anwendungen spielt es keine Rolle, wie "sicher" Ihr PRNG ist. Was für eine kohärente Geräuscherzeugung wichtig ist, ist die Qualität der Verteilung und die Häufigkeit der Periodenwiederholungen sowie die Korrelationseffekte aufgrund benachbarter Samen (für deren Behebung Lawinenmischer erforderlich wären). Ganz ehrlich, Ihre Antwort ist falsch, gehört nicht hierher und sollte wahrscheinlich gelöscht werden.
am

6
Dies ist keine Antwort auf die Frage. Beachten Sie, dass das OP der verknüpften Frage Zufallszahlen verwendet, um eine Monte-Carlo-Analyse durchzuführen. Ein Update zur Behebung der gestellten Frage sollte in Betracht gezogen werden. mathoverflow.net/questions/26942/…
CramerTV

8
Sicher gibt es viele Anwendungen, bei denen PRNGs nicht kryptografisch sicher sein müssen. Aber OP fragte nicht, ob es für einige Zwecke nützlich sei, sondern ob diese Methode ein "perfektes RNG" sei. Während sie nicht geklärt haben, was sie mit "perfekt" meinen, scheint die Tatsache, dass es für eine der Hauptanwendungen von RNGs ungeeignet ist, für die Beantwortung dieser Frage sehr relevant zu sein.
Geoffrey Brent

7

( aktualisiert, nachdem viele Leute darauf hingewiesen haben, dass der Zufallszahlengenerator nicht dasselbe ist wie eine einzelne normale Sequenz.)

Wenn Sie fragen, ob Sie eine normale Folge von π (dh alle Zahlen erscheinen einheitlich), dann gibt es mehrere Antworten auf mathoverflow. Die Antwort über die Verteilung der Ziffern von Pi lautet zum Beispiel:

... es wird angenommen, dass π eine normale Zahl ist (~ gleichmäßige Verteilung jeder Ziffernfolge).

Informationen zur Verteilung der Ziffern finden Sie unter http://www.eveandersson.com/pi/precalculated-frequencies oder https://thestarman.pcministry.com/math/pi/RandPI.html (erste 1000 Ziffern):

Bildbeschreibung hier eingeben

Bei mathoverflow gibt es auch nette Antworten auf:


3
Wenn Sie glauben, dass die Frage ein Duplikat ist, warum beantworten Sie sie dann? Sie sollten es einfach markieren und nicht das unerwünschte Buchungsverhalten verstärken.
Dkaeae

8
@dkaeae Es gibt keine Unterstützung für Duplikate von Fragen auf anderen Websites. Darüber hinaus kann dieselbe Frage auf verschiedenen Websites unterschiedliche Antworten erhalten. In diesem Fall werden bei einer Site wie Mathematics Sicherheitsbedenken möglicherweise nicht besonders berücksichtigt. Siehe auch diese Antwort . Beachten Sie, dass wir davon abraten, dieselbe Frage an mehreren Standorten gleichzeitig zu stellen, da dies zu unnötigem Aufwand führen kann. Aber die gleiche Frage von verschiedenen Personen zu verschiedenen Zeiten an verschiedenen Standorten ist in der Regel in Ordnung.
Diskrete Eidechse

6
Nur weil eine Zahl normal ist, bedeutet dies leider nicht, dass Sie durch die Ausgabe ihrer Ziffern ein gutes RNG erhalten. Die Ergebnisse eines solchen RNG sind immer noch vollständig vorhersehbar. Ob dies akzeptabel ist, hängt möglicherweise von der Anwendung ab. Also denke ich nicht, dass es so einfach ist, als würde man sagen "pi ist normal, case closed".
DW

2
Das ist nur eine kaiserliche Beobachtung für die ersten paar Ziffern? Was soll das heißen?
Marschall Handwerk

1
@ DW Ich erwähnte, dass ich beabsichtige, eine Kombination von Zahlen wie π und e zu verwenden. Und bitte sagen Sie, wie die Ausgabe vorhersehbar sein wird, wenn wir nicht wissen, wie weit der Generator in der Sequenz fortgeschritten ist.
Abhradeep Sarkar

1

Im Allgemeinen funktioniert dieser Ansatz nicht: "Zufälligkeit" bedeutet nicht, dass Sie viele verschiedene Ziffern erhalten, aber es gibt auch andere Aspekte. Ein klassischer Test besteht beispielsweise darin, festzustellen, ob alle zweistelligen oder dreistelligen usw. Kombinationen mit der gleichen Häufigkeit auftreten. Dies wäre ein sehr einfacher Test, der offensichtliche nicht-zufällige Ergebnisse ausschließen kann, aber immer noch viel zu simpel ist, um wirklich zufälliges Verhalten zu überprüfen.

Auf der Wikipedia-Seite über Zufallstests finden Sie eine Sammlung von Links zu diesbezüglichen Primärquellen. Sie erwähnen eine Menge ziemlich kompliziert klingender Konzepte; Es ist nicht so wichtig, sich eingehend damit zu befassen - aber es ist klar, dass es nicht intuitiv möglich ist, eine bestimmte Zahl als gute Quelle für solche Ziffern zu deklarieren.

Positiv zu vermerken: Für eine bestimmte irrationale Zahl können Sie diese natürlich auch einfach ausprobieren. dh, berechnen Sie die Zahl mit einer ausreichend großen Anzahl von Ziffern und führen Sie sie durch alle bekannten Tests (es gibt Werkzeuge dafür, siehe obigen Link). Wenn das Maß für Ihren Anwendungsfall gut genug ist und Sie wissen, dass dies für kryptografische Anwendungen offensichtlich nutzlos ist, und Sie immer die gleichen Zahlen erhalten, wenn Sie von vorne beginnen, und die Qualität sich möglicherweise verschlechtern kann, wenn Sie über die von nIhnen ausgewählten hinausgehen Zum Testen der Zufälligkeit können Sie diese Zahlen verwenden. Es ist jedoch weitaus besser, einen dedizierten (Pseudo-) Zufallszahlengenerator zu verwenden. und nichts geht über eine gute physikalische Quelle der Zufälligkeit.


4
πe

3
Ayrats Antwort verweist auf andere Websites, auf denen Mathematiker diese Tests durchgeführt haben. Sie glauben, haben aber nicht bewiesen, dass π die statistischen Tests erfüllt.
Barmar

Ja, das habe ich mit meinem letzten Absatz gemeint - es lohnt sich, es nur empirisch zu versuchen. aber rigoros ist es nicht bewiesen worden (oder kann nicht einfach als wahr angenommen werden) für willkürliche "kompliziert aussehende" Irrationalitäten. @DavidRicherby, @ Barmar
AnoE

1

Es liefert eine gute Zufallszahl, bis Sie erkennen, wie sie erzeugt wurde, wie bei vielen Pseudo-Zufallszahlen. Die irrationalen (nicht algebraischen und nicht transzendentalen) Zahlen, die Sie gewählt haben, sind häufig und lassen sich leichter erraten als andere. Ich sehe kein Problem mit dieser Methode, vorausgesetzt, Sie wählen weniger häufig gesehene Generatoren.


4
Kein Problem außer der groben Ineffizienz, der Tatsache, dass Sie sich auf einen Gegner verlassen, der Ihren Algorithmus nicht kennt, der Tatsache, dass eine schlechte Wahl des Generators zu einer sehr schlechten Sequenz führen kann, ...
David Richerby

4
2πe

Eine transzendentale Zahl ist eine reelle Zahl, die nicht algebraisch ist. Es ist nicht möglich, dass eine reelle Zahl sowohl nicht algebraisch als auch nicht transzendental ist.
Brady Gilg
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.