Gibt es eine pseudo-random number generator einfach genug zu tun in Ihrem Kopf?
Sind es irgendwelche pseudo-Zufallszahlen-Generatoren, die einfach genug zu tun mit Kopfrechnen oder Kopfrechnen plus zählen auf Ihre Finger. Offensichtlich diese Grenzen ziemlich einfache Mathe - es muss etwas sein, das jemand der durchschnittlichen mathematischen Fähigkeiten tun kann, oder vielleicht Durchschnittliche Fähigkeit für einen Programmierer kein Mathe-Wunderkind.
Die einfachste, die ich gefunden habe, ist das Middle-square-Methode, aber es ist nicht nur bekannt, dass eine schlechte Quelle von Zufälligkeit, es sieht immer noch zu Komplex, um Sie ohne Bleistift und Papier.
Wenn der einzige Weg, dies zu tun ist durch die Begrenzung der Bandbreite, wie es vielleicht nur Ausgang 8 bit-zahlen, ist das in Ordnung. Ich vermute, eine der standard-PRNG-algorithmen wäre einfach genug, in ein 8-bit-version, aber ich weiß nicht genug, um zu vereinfachen, von der 32 bit-version auf eine 8-bit-version. (Alle die, die ich sah abhängen speziell ausgesucht seed-Nummern, die sind unterschiedlich, je nachdem, wie viele bits der Sie arbeiten, und in der Regel nur die 32-bit und 64-bit Beispiele gegeben werden.)
- Schritt 1. Denken Sie an die erste Nummer erscheint, dass in Ihren Kopf. 😉
- Deck: ich Tat, und ich bekam 6275182149295802584461. Ich brauche etwas Schlaf.
- Das denken von die erste Nummer, die erscheint in Ihrem Kopf hat eine schlechte Verteilung Funktion. Zum Beispiel, 7 und 17 sind viel häufiger als andere zahlen. scienceblogs.com/cognitivedaily/2007/02/...
- Duplicate: programmers.stackexchange.com/questions/49232/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen linear feedback shift register ist ziemlich einfach, solange Sie sind bequem mit dem denken in binären (oder vielleicht hex, da es einfach zu map zwischen den beiden).
Komplexer ist Xorshift, aber wenn Sie wissen, dass Ihr bitweisen Operationen, es sein sollte durchaus möglich, mit so gut funktionieren.
Pseudo-random (nach Dilbert):
In Ihrem Kopf, die Sie tun können, "semantische" random number generation 🙂
Wie das zufällige Wort, und Berechnung einer Metrik aus, wiederholen Sie, bis Sie erhalten
Anzahl mit angemessener Länge.
Beispielsweise Wort "übung" könnte umgewandelt 10100101b (Sie können sehen, meine Bekehrung Idee hier).
Wie etwa der Blum-Blum-Shub, aber mit Primzahlen zu klein für eine sichere Verwendung? Verwendet sicher ist es langsam, aber es beinhaltet Operationen, die wir verwendet, um zu tun, so dass Sie möglicherweise in der Lage sein, eine überschaubare Geschwindigkeit, ohne zu viel Praxis, vielleicht mit M = 437 oder mäßig größer.
Ich Zweifel, ob alles, was ich tun konnte, in meinem Kopf sicher, sowieso. Ich kann mich nicht erinnern, das groß genug zahlen funktioniert ohne Fehler, die auf einem vernünftig dimensionierten Zustand.
Können Sie ganz einfach tun, ein 10-bit-LFSR auf Ihre Finger, wenn Sie über anständige sehnen 😉
Nicht eine direkte Antwort, aber je nachdem, warum Sie Fragen, die Sie interessieren könnten Solitaire, das erzeugt eine keystream (D. H. eine pseudo-zufällige Reihenfolge), mit einem deck von Karten. Kann nicht sein fertig in Ihrem Kopf, aber nicht erforderlich, Bleistift und Papier.
Dies ist ziemlich basic und sollte passen die meisten Menschen den Kopf:
So lange, wie Sie nicht mit null beginnen, dieser wird beim Durchlaufen einer Periode von 4500 ergibt. Die Ausgabe nicht "sehen", die zufällig, aber es ist in dezimal und sogar echte zufällige Ergebnisse scheitern zu suchen, random, das ist der Grund, warum Menschen saugen diese Aufgabe.
Könnte ich versuchen zu hacken ein Programm für die Konvertierung von binären in eine unvoreingenommene Weise, um es zu testen.
Alternative Konfigurationen:
Ja, ich weiß von einem, dass kann möglicherweise durchgeführt werden, die in Ihrem Kopf , und wenn noch weiter modifiziert führen kann echte Zufallszahlen zu nehmen, eine Liste von zahlen , eine geordnete Liste von zahlen zur Basis zehn verursachen, dass wäre am einfachsten zu berechnen. Fügen Sie Sie zusammen , halten nur diejenigen, die Ziffer Ort, Anzahl der resultierenden Zahl und dann den Ort, der auf das Ende der Liste und drop-off ist die erste Ziffer , und dann wiederholen , dies wird nicht produzieren echte Zufallszahlen, sondern zufällig genug und kann je nach Größe der Liste der Nummern, die Sie wählen, zu verwenden , wird sich irgendwann wiederholen, aber für eine große anfängliche Liste nicht wiederholen Sie den Vorgang für eine ausreichend große Menge an Zeit.
zum Beispiel, wenn ich nur 5 zahlen in einer Liste 12345 dann in der nächsten Liste wäre 2345 und die am weitesten rechts liegenden Ziffer der 1+2+3+4+5ie 15 oder 5, so dass die Liste wäre 23455 jetzt der eine hat sich abgesetzt und wird nicht mehr verwendet, so dass die nächste Summe addiert bis zu 20 -1 (15+5 minus die eine, die abgefallen), so dass die nächsten Liste wäre 34559 dann 45596 dann 55969 dann 59694 jetzt hier stoppen wir , denn wir haben generiert eine vollständige Samen im Wert von Ziffern, so hatten wir anfänglich 12345.
Für die nächsten Samen, den wir bekamen, 59694 , nun es ist eine Art der Verknüpfung, die Sie auch verwenden können, wenn eine vollständige seed berechnet wurde, oder die Verknüpfung selbst verwendet werden könnte, die Sie die Letzte Ziffer , multipliziere es mit 2 und subtrahieren davon die erste Ziffer die Verdoppelung einer Ziffer ist leicht getan, im Kopf, die wichtige Sache zu erinnern ist, alle anderen Ziffern und Ihrer Reihenfolge in der Sequenz, diese wird am besten obwohl Sie nur erzeugen pseudo - Zufallszahlen , mit einigen lange wiederholen Sie die Zeiten, die größer die Liste von zahlen, die Sie verwenden, aber in der ersten Liste muss mit Sorgfalt ausgewählt werden, wie zum Beispiel nicht auswählen, alle Nullen, wie Sie Liste, oder Sie haben einen endlosen Strom von Nullen und auch einige Sätze von Ziffern erzeugen mehr Zyklen wiederholen als andere (aber vielleicht sollte dies auf dem Papier, vorausgesetzt, Sie haben einen Bleistift oder Kugelschreiber und ein Blatt Papier zur Hand... 🙂 hoffe, das hilft..(ein bisschen modifiziert dies den Anfang macht eine sehr gute true random number generator) genießen...
Ich hoffe das wird besser, wenn nicht, dann Sag mir so 🙂 (ich war nie sehr gut in Englisch ! 🙂
Die einfachste Möglichkeit wäre, generieren Sie mehrere zahlen, die kommen auf den Kopf und dann Summe und mod jeweils 10 Ziffern. Je mehr zahlen Sie eingeben, desto zufälliger und weniger voreingenommen sein wird.
Wenn nicht deterministische algorithmen erlaubt sind, bewegen sich Ihre Augen in Ihrem Kopf, Was ist also so etwas wie "die Anzahl der roten Objekte vor mir, plus die Anzahl der blauen Dinge, die modulo der Anzahl der grünen Dinge, plus der Höhe des höchsten Stapel der Dinge, die mindestens eine Sache, die mit den Buchstaben g und die Großbuchstaben A auf Sie."
Ich bin mir sicher, dass es einen Weg gibt, das zu tun, wäre eigentlich ziemlich random.