Zufallszahlengenerierungsalgorithmus für menschliche Gehirne? [geschlossen]


37

Kennen oder haben Sie praktische, einfach zu erlernende "In-Head" -Algorithmen, mit denen Menschen Zufallszahlen erzeugen können? Mit "im Kopf" meine ich .. vorzugsweise ohne externe Werkzeuge oder Geräte. Auch eine hohe Leistung (viele Zufallszahlen pro Minute) ist wünschenswert.

Frage dies auf SO, aber es hat nicht viel Interesse bekommen. Vielleicht ist dies besser für Programmierer geeignet.


7
@S.Lott Ich finde es überhaupt nicht absurd. Unpraktisch? Warum natürlich? Absurd? Sicherlich nicht. Und selbst wenn ja, kann Absurdität den Weg für neue, nützliche Gedanken ebnen.
biziclop

21
9 .... 9 .... 9 .... 9 - Sie können nicht beweisen, dass es nicht zufällig ist.

13
S.Lott: Die Idee eines einfach zu berechnenden Pseudozufallszahlengenerators ist überhaupt nicht absurd. Ich denke, das OP möchte einen Weg finden, um die menschliche Voreingenommenheit hier zu vermeiden ...
Jens

8
Ich finde es komisch (und gleichzeitig etwas deprimierend), wie viele Menschen ein Argument der Unwissenheit zu schätzen scheinen. "Ich kann es mir nicht vorstellen, deshalb kann es nicht existieren", oder Antworten, die völlig verfehlt sind.
biziclop

4
Diese Frage scheint nicht zum Thema zu gehören, da es um die kognitiven Fähigkeiten eines Individuums und nicht um Programmieren geht.

Antworten:


36

Hier ist ein Algorithmus von George Marsaglia :

Wählen Sie eine zweistellige Zahl, sagen wir 23, Ihren "Samen".

Bilden Sie eine neue 2-stellige Zahl: die 10-stellige plus die 6-fache Ziffer der Einheit.

Die Beispielsequenz ist 23 -> 20 -> 02 -> 12 -> 13 -> 19 -> 55 -> 35 -> ...

und seine Periode ist die Ordnung des Multiplikators 6 in der Gruppe von Resten, die relativ prim zu dem Modul 10 ist. (59 in diesem Fall).

Die "Zufallsziffern" sind die Einheitsziffern der zweistelligen Zahlen, dh 3,0,2,2,3,9,5, ... die Sequenz mod 10. Die Arithmetik ist einfach genug, um in Ihrem Kopf.


Das hört sich wirklich gut an.
biziclop

4
Dies ist möglicherweise kein Problem für die Bedürfnisse einer bestimmten Person, bietet Ihnen jedoch nur 90 verschiedene Streams.
Compman

5
79, 79, 79, 79, 79, 79, 79, 79, 79, 79, oh nein! Ich gehe davon aus, dass Sie <= 60 bleiben sollten, was gut funktioniert, da Sie die Uhr für einen Samen verwenden können, wenn Sie keinen haben.
Eds

4
@eds Ähm, was? 79 -> 61 -> 15 -> ...
Izkata

1
Vielleicht bedeutete @eds 59. Alle Zahlen von 1-58 scheinen ein faires Spiel zu sein.
Erhannis

26

Lesen Sie diesen Artikel über Geomantie . Insbesondere der Abschnitt zum Generieren von Geomantic-Diagrammen . Es handelt sich um eine Pseudozufallszahlen-Generierungstechnik, die Binärziffern und einige einfache rekursive Berechnungen verwendet. Es scheint, als könntest du das ziemlich einfach in deinem Kopf tun (obwohl ein Stück Papier helfen würde).

Haftungsausschluss: Ich habe es nicht selbst ausprobiert. Wenn ich eine hinreichend zufällige Zahl benötige, erhalte ich entweder eine Ausgabe von /dev/random, verwende die randSprache, die ich zur Hand habe, oder rolle meine vertrauenswürdige d20.

Wenn Sie ein Wunderkind der Mathematik sind, ist die Methode des mittleren Quadrats eine recht einfache, wenn auch merklich unzuverlässige Methode.


3
+1 Ich denke, dass dies die erste ernsthafte Antwort auf diese Frage ist. Ein bisschen traurig.
Jens

@Magnus Wolffelt - Ich erinnere mich, dass es in einem TED-Vortrag von Ron Eglash über die kulturelle Bedeutung der fraktalen Geometrie in Afrika erwähnt wurde. "Bamana Sand Divination". Es ist ziemlich interessant, obwohl ich immer noch keine Ahnung habe, wie Sie diese Technik anwenden würden, da wir keine Wahrsager mehr brauchen. ted.com/talks/ron_eglash_on_african_fractals.html
Inaimathi

1
Soweit ich sehen kann, können Sie mit dieser geomantischen Methode einfach eine Quelle der Zufälligkeit "verbessern" (ich nehme an, dass "Debias" ein besserer Begriff wäre). Nicht zum Niesen, aber nicht wirklich das, wonach die OP suchte. Was nicht heißt, dass es nicht schön ist ...
Norman Gray

@Norman Gray - Das menschliche Gehirn kann standardmäßig mit voreingenommenen willkürlichen Zahlen aufwarten.
Inaimathi

@ Inaimathi Genau: Aus diesem Grund wäre das Debiasing von Zahlen wichtig und die Methode, auf die Sie hingewiesen haben, ist hilfreich. Oder ich verstehe dich falsch.
Norman Gray

10

Ich denke, eine vernünftige Annahme ist, dass Sie sich auf die enorme Menge verbaler Informationen verlassen müssen, die Sie in Ihrem Gehirn speichern. Die Quelle kann alles sein, Songtexte, Gedichte, Monty Python-Skizzen, aber es muss etwas sein, das Sie auswendig können.

Dann müssen Sie einen ziemlich zufälligen Teil davon auswählen, um unbewusste Vorurteile so weit wie möglich zu beseitigen. Ein Weg, dies zu tun, wäre zum Beispiel, ein Lied auszuwählen, eine Zahl kzwischen 10 und 20 zu wählen und dann den kth Buchstaben in seinen Texten zu finden.

Dies ergibt natürlich keine einheitliche Verteilung für sich, da die Häufigkeit der Buchstaben unterschiedlich ist, es sich jedoch um einen zufälligen Buchstaben handelt oder zumindest so nahe, wie ich es ohne eine externe Quelle für möglich halte.

Update: Übrigens, wenn Leute gebeten werden, eine zufällige Folge von Münzwürfen zu schreiben, ist der weitaus häufigste Fehler, Ihre Folge "zu zufällig" zu machen: Läufe mit identischen Ergebnissen sind zu kurz, was eine einfache Lauflänge ist Analyse wird zeigen. Diese Methode zielt hauptsächlich darauf ab, diese Falle zu umgehen. Natürlich können sich aus dem Schatten dieser Lauflängenverzerrung andere Anomalien ergeben, aber Sie benötigen geeignete Experimente, um sie zu finden. Ironischerweise kann ein Algorithmus zum Erzeugen von Zufallszahlen durch alleiniges Denken nicht durch alleiniges Denken gefunden werden.


Selbst dann würde ich erwarten, dass Sie in vielerlei Hinsicht voreingenommen sind. (IE neigt dazu, die gleiche Gruppe von Songs zu wählen)
Zachary K

@ Zachary K Ohne Zweifel, aber dann müsstest du auch eine Zahl auswählen, die es ein bisschen verbreitet. Obwohl die Verzerrung niemals beseitigt werden könnte, verhindert diese Methode mit ziemlicher Sicherheit, dass Sie wissen, welchen Buchstaben Sie auswählen werden (obwohl Sie mit der Zeit einige auswendig lernen müssen).
Biziclop

Eini mini miny moe, wie wir es als Kinder gemacht haben.
Zachary K

2
msgstr "wähle eine Zahl k zwischen 10 und 20". 17. Die kleinste Zufallszahl.
S.Lott

@ S.Lott Es ist egal wie zufällig diese Zahl ist. Der einzige Grund, warum Sie es brauchen, besteht darin, dass Sie dazu neigen, sich die ersten Buchstaben der Dinge leichter zu merken.
biziclop

9

Probieren Sie Ihre Uhr.

Ich mache das, wenn ich eine Zufallszahl brauche, die einen Faktor von 60 (Sekunden) hat. Nimm das passende Modulo, egal wie spät es ist. 16:17:23 Uhr, simuliert einen Würfelwurf, wird zu 5.


Und für eine große Anzahl pro Minute?
Gary Rowe

Ich bin mir nicht sicher, ob ich folge. Sie sagen, machen Sie den Pool der Zahlen 3600, indem Sie Minuten einschließen? Ich denke, aber je größer die Zahl, desto weniger zufällig würde es sein? Als ob Sie nicht so einfach schnell Proben entnehmen könnten.
Mark Canlas

1
@Gary Rowe Ich fürchte, dieses Kriterium muss abgeschafft werden, einfach weil das menschliche Gehirn ungeachtet der verwendeten Methode einfach zu langsam ist.
biziclop

Entschuldigung, ich habe mich nur gefragt, wie Ihr Ansatz funktioniert, wenn Sie mehr als 60 Nummern pro Minute benötigen. Im Nachhinein wird das Auffordern eines menschlichen Gehirns, so viele Zahlen pro Minute zu produzieren, die maximale Leistung bringen. Machen Sie sich also keine Sorgen.
Gary Rowe

@biziclop Keine Probleme. Es sieht so aus, als hätte ich eine Kollision mit Kommentaren gehabt, als ich die Situation mit @ Mark's Ansatz betrachtet habe.
Gary Rowe

5

Hervorragende Frage. Ich befürchte, dass sich eine gute Antwort als sehr schwierig erweisen könnte.

Aber zu Beginn ist es ziemlich einfach, eine „echte“ Zufälligkeit zu erzeugen, wenn zwei Personen beteiligt sind: Lassen Sie einfach eine der Personen lautlos in ihrem Kopfmodul eine Zahl zählen, und die andere sagt nach einem beliebigen Intervall „Stopp“. Anschließend kann diese Zahl mit Standardmethoden in andere Verteilungen umgewandelt werden.

Um diese Methode robust zu machen, darf der Modul nicht zu groß sein, da sonst eine starke Tendenz gegenüber kleinen Zahlen besteht. Es würde mich sehr interessieren, ob es Arbeiten zur Analyse der stochastischen Eigenschaften dieser Methode gibt.


Es ist wichtig, dass das Zählen schnell erfolgt, denke ich - die zählende Person sollte darauf achten, nicht rhythmisch mit nur etwa 1 oder 2 Schritten pro Sekunde zu zählen. Weil es eine signifikante Anzahl von Zyklen (intuitiv ≥ 4) durch alle Zahlen geben sollte, um genügend Entropie zu erreichen.
Aaron Thoma

Verbesserungsvorschlag für bessere Zufälligkeit : Die zählende Person wählt zuerst einen geheimen Zufallskeim X₀ zwischen 0 und Modul; in Kombination mit dem Zählen sollte dies eine anständige Zufälligkeit bei noch minimalem Denkaufwand bieten (selbst wenn langsam im Verhältnis zur Zähldauer gezählt wird; dh eine geringe Anzahl von Zyklen - intuitiv wäre ≥2 in Ordnung; <2 wäre in Ordnung).
Aaron Thoma

4

Dies ist eine komplexe Frage; Ich werde versuchen, ein bisschen zu erklären, ohne zu weit ins Unkraut zu streifen.

Zuerst müssen wir fragen "Was ist wahre Zufälligkeit?" Solche Diskussionen degenerieren schnell zu philosophischen Gewässern, aber das Wesentliche ist: "Ist das Universum wirklich zufällig?" Mit anderen Worten, wenn Sie Zeit und Materie quantifizieren, können Sie den nächsten Zustand des Universums aus dem aktuellen Zustand berechnen? Wenn ja, dann ist das Universum deterministisch und es gibt keine echte Zufälligkeit (siehe, was ich mit "philosophisch" meine?)

Weil "wahre Zufälligkeit" schwer zu definieren ist, geben wir uns oft mit "Pseudozufälligkeit" zufrieden. Dies ist in der Regel erforderlich, wenn auf einem Computer "Zufallszahlen" generiert werden sollen.

Der einfachste Pseudozufallszahlengenerator wäre so etwas wie Dilberts berühmter "9 .. 9 .. 9 .." - Algorithmus. Aber intuitiv scheint es nicht sehr gut zu sein (was natürlich der Witz ist). Statistiker haben eine ganze Reihe von Tests entwickelt, um festzustellen, ob eine Folge von angeblich zufälligen Ausgaben "gut" ist. Beginnen Sie mit der Wikipedia-Seite für "Chi-Quadrat-Test" und verbringen Sie einen Nachmittag damit, über diese Tests zu lesen.

Ein einfacher Computeralgorithmus wie ein "linearer Kongruenzgenerator" erzeugt Zahlen, die gut genug für einen Chi-Quadrat-Test sind (Sie müssen diesen Algorithmus jedoch noch aus etwas "aussäen").

Der nächste Schritt bei "Güte" ist "kryptografisch starke Zufälligkeit". Dies bedeutet, dass Sie bei einer gegebenen Folge a1, a2, ... die nächste Zahl in der Folge nicht mit "angemessener Wahrscheinlichkeit" vorhersagen können, es sei denn, Sie verwenden viel Berechnung. Diese Zahlen werden manchmal als "rechnerisch pseudozufällig" bezeichnet. Ein üblicher Weg, um eine solche Sequenz zu erhalten, ist über eine "Hash-Kette" wie folgt: a1 = SHA512 (a2), a2 = SHA512 (a3), ... Da wir glauben (basierend auf Erfahrung, nicht auf mathematischen Beweisen), dass SHA512 ist Wir glauben, dass es "unmöglich" ist, vorauszusagen, wenn nur a1 gegeben ist.

Nun stellt sich die Frage, was ist das Beste, was Menschen nach den in Ihrer Frage festgelegten Regeln tun können? Menschen sind bekanntermaßen schlecht darin, Zufälligkeiten zu erzeugen. Früher gab es eine Website, auf der Sie versuchten, Münzwürfe durch "zufälliges" Eingeben von H, T, T, H, T, T usw. zu generieren, als würden Sie eine Münze werfen (aber Sie tun es in dein Kopf). Nach einer Weile begann die Website, Ihre Flips in mehr als 50% der Fälle vorherzusagen (unter Verwendung eines Hidden Markov-Modells). Wir sind einfach schlecht darin.

Es gibt Möglichkeiten, die Situation mit verschiedenen Mischtechniken zu verbessern, die wahrscheinlich in Ihrem Kopf machbar sind. Und es gibt sogar Anwendungen, die ich mir ausdenken könnte, warum Sie dies wünschen (politischer Gefangener möchte eine Nachricht an externe Verbündete verschlüsseln). Aber ich denke, dieser Beitrag ist lang genug. :)


1
Ob ein wirklich zufälliger physikalischer Prozess existiert, ist umstritten (obwohl Experimente mit dem EPR-Paradoxon eine positive Antwort nahelegen), es gibt jedoch eine theoretische Definition einer zufälligen Sequenz auf der Grundlage der Kolmogorov-Komplexität.
biziclop

3

Der eigentliche Grund für die Verbreitung von werkzeugbasierten RNGs ist, dass ein guter In-Head-Algorithmus zur Erzeugung von Zufallszahlen erst noch entwickelt werden muss .

Glücklicherweise sind tragbare Zufallszahlengeneratoren - einschließlich Münzen zum Werfen, Würfel (mit verschiedenen Facettenzahlen) zum Rollen, Karten zum Pflücken und Strohhalme zum Ziehen - relativ einfach zu geringen Kosten zu erhalten. Darüber hinaus gibt es für die Technophilen unter uns einige ziemlich gute Simulationen dieser Tools, die für die meisten mobilen Plattformen verfügbar sind.

Ich kann keines dieser Produkte jedem Fleischgeschirr vorziehen.


1
Und diese physischen Geräte haben tatsächlich eine unvorhersehbare Natur. In gewissem Sinne sind sie zufälliger als die besten Computeralgoithmen.
Omega Centauri

( @OmegaCentauri: Natürlich sehe ich, was Sie dort getan haben!; O) (Ich bin nicht sicher, ob das Wortspiel beabsichtigt war, aber ich mag es. :)) )
Aaron Thoma

3

Hoch randomisierte, große Menge pro Minute und vom Menschen erzeugt? Wird nicht passieren

Die Hauptprobleme, auf die Sie stoßen werden, sind:

  • Die Leute langweilen sich schnell, so dass Muster schnell auftreten
  • Das menschliche Gehirn hat eine Menge Struktur, die der Mustererkennung / -erzeugung gewidmet ist, also müssen Sie das überwinden
  • Wirklich zufällige Zahlen enthalten Wiederholungen, die Menschen zu vermeiden versuchen
  • Menschen sind nicht gut mit großen Zahlen

Dies führte dazu, dass viele Kryptografen die "In-Head" -Techniken zugunsten von zufälligen externen Prozessen aufgaben, da es einfach zu einfach war, Muster basierend auf "In-Head" -Zahlen zu erarbeiten.

Off-Topic aber interessant

Der Solitaire-Algorithmus (dargestellt in Neal Stephensons Cryptonomicon ) ist zwar kein Mechanismus zur Erzeugung von Zufallszahlen in Ihrem Kopf, zeigt jedoch, wie schwierig es ist, Zufallszahlen für kryptografische Zwecke zu verwenden. Es ist nur eine Packung gewöhnlicher Spielkarten erforderlich, um eine einigermaßen sichere Ausgabe zu erzielen, die Methode ist jedoch recht kompliziert.


1
Ich denke, das beantwortet die Frage nicht. Die 4 Punkte Ihrer Antwort gelten nur, wenn versucht wurde, Zufallszahlen ohne Algorithmus zu finden. Ich denke, das OP ist sich dessen bewusst und dies ist der Grund, warum er nach einem Algorithmus fragt, den die Leute in ihren Köpfen tun und gute Ergebnisse liefern können, dh die in Ihrer Antwort erwähnten Probleme nicht leiden.
FabianB

2

Ich bin aufrichtig neugierig auf alles, was sich die Leute zu diesem Problem ausgedacht haben könnten.

Bitte treten Sie vom Schreibtisch weg und gehen Sie nach Las Vegas.

Die Menschheit hat Dutzende von Randomisierungsverfahren. Sie können sie alle in Las Vegas sehen.

Sie haben sich drehende Kreise. Sie haben Würfel fallen. Und Sie haben Token gemischt. Sie arbeiten alle wunderbar gut.

Würfel sind vielleicht die ältesten. Anscheinend wurden an einer Stelle langgestreckte 4-seitige Stöcke verwendet. Symmetrische Würfelknochen von Schafen waren seit Jahrtausenden beliebt. Wir verwenden diese Art von Randomisierern seit - wahrscheinlich - ungefähr zur selben Zeit, als wir die Sprache entwickelten.

http://itunes.apple.com/us/app/motionx-dice/id287509231?mt=8

"Wer arithmetische Methoden zur Erzeugung von Zufallszahlen in Betracht zieht, befindet sich natürlich in einem Zustand der Sünde"

--- John von Neumann


7
Downvoted - Ich interessiere mich nicht für externe Tools zum Generieren von Zufallszahlen, sondern für In-Head-Algorithmen, die sich auf Erinnerungen oder Stimuli stützen können, um wirklich Zufallszahlen zu generieren.
Magnus Wolffelt

3
du kannst nicht in deinem kopf würfeln
jk.

2
@ jk01: Richtig. Sie können auch nicht zufällig in Ihrem Kopf tun.
S.Lott

@ S.Lott - Ich denke, was Sie damit sagen wollen, ist "Ein typischer Mensch kann mit der naiven Methode und ohne externe Tools keine durchgehend zufälligen Zahlen in seinem Kopf mit hoher Geschwindigkeit erzeugen".
Inaimathi

1
@ Inaimathi. Nein, ich sage etwas viel Stärkeres. Sie können nicht zufällig in Ihrem Kopf tun. Ihr Gehirn steckt voller Vorurteile, Sie brauchen also einen Algorithmus. Kein endlicher, effektiver, deterministischer Algorithmus ist zufällig. Sie können es einfach nicht tun. Kein hinreichend einfacher Algorithmus ist sogar pseudozufällig, so dass Sie sich nicht zufällig annähern können. Würfel sind klein, handlich und haben eine lange, lange Nutzungsgeschichte.
S.Lott

1

Mir fällt nichts ein. Tatsächlich würde ich erwarten, dass alles, was Sie sich ausgedacht haben, so viele Vorurteile enthält, dass es wertlos wäre.

Wenn ich Zufallszahlen brauche, würfle ich normalerweise.


0

Fragen Sie nach einem LCM, das Sie in Ihrem Kopf machen können? Beachten Sie, dass die Idee, dass dies besser ist als Würfel, absurd bleibt.

Dies ist jedoch so zufällig, wie es jeder endliche, bestimmte und effektive Algorithmus möglicherweise sein kann.

http://www.vias.org/simulations/simusoft_lincong.html

http://www1.i2r.a-star.edu.sg/~knandakumar/nrg/Tms/Probability/Probgenerator.htm

U_ {k + 1} = (a \ mal U_k + b) mod (m + 1).

Es ist einfacher zu sehen, was dies tut, wenn wir kleine Werte a = 5, b = 1 und m = 7 auswählen. Das solltest du in deinem Kopf können.


Ich frage mich, ob es eine anständige Zufallsversion davon gibt ( linearer Kongruenzgenerator (LCG) ), die wirklich einfach im Kopf zu machen ist. idealerweise a = 1, idealerweise a = 2 Sekunden. (Meine bisherigen Gedanken dazu im nächsten Kommentar.)
Aaron Thoma

(( Ich dachte, a = 1, b prime, b clever gewählt, könnte eine praktikablere Alternative für größere m sein, das würde immer noch gut funktionieren. Dann bemerkte ich, dass das wahrscheinlich nicht wahr ist: Für b≈0 oder b≈m wird es durchlaufen Sie die Zahlen eher nacheinander, also dachte ich, b≈m / 2 ist die Antwort, aber dann bemerkte ich, dass dies auch nacheinander sein könnte (für kleine | b – m / 2 | / m), nur abwechselnd an zwei Stellen b≈m / 3, es könnte sequentiell sein und zwischen 3 Positionen wechseln; für b≈m / 99 würde das Problem nicht mehr in alternierender Form vorliegen, aber es würde ~ 99 Schritte dauern, um eine Modulo-Subtraktion zu durchlaufen. ))
Aaron Thoma
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.