Diese Seite funktioniert am besten mit aktiviertem JavaScript!

Beschreibung: Zufallsgenerator - JA / NEIN

Zufallsgenerator Ja Nein

In diesem Artikel wird die Funktionsweise des Zufallsgenerators "Ja / Nein" beschrieben. Dieser Generator erzeugt zufällig die Antwort Ja oder Nein. Wenn du dir unsicher bist und ein Orakel benötigst, dann bist du hier genau richtig. Dank dem kryptografisch sicheren Zufallsgenerator musst du selbst keine Entscheidung mehr treffen.

Zufallsgenerator "JA / NEIN"

Zum nachfolgend beschriebenen Zufallsgenerator gelangst du hier.

Was ist Zufall?

Als Zufall bezeichnet man ein Ereignis, für das es keine kausale Erklärung gibt. Das bedeutet, dass das Ergebnis eines Zufallsgenerators nicht vorhersehbar bzw. berechenbar sein darf. Dies widerspricht jedoch den Gesetzmäßigkeiten eines jeden Computers, was im Umkehrschluss bedeutet, dass ein Computer ohne weitere Peripherie keine absolut zufälligen Zahlen erzeugen kann. Man spricht in diesem Fall von Pseudo-Zufallszahlen. Generell lässt sich darüber philosophieren, ab wann man tatsächlich von Zufall sprechen kann.

Wie werden die Zufallsantworten JA / NEIN generiert?

Theoretisch werden in diesem Generator insgesamt drei verschiedene Mechanismen zur Erzeugung von Pseudo-Zufallszahlen eingesetzt, wobei zwei dieser Verfahren lediglich zur Generierung des Binärstrings im Hintergrund dienen.

Zufallsgenerator 1 und 2 für Binärstring

Sinn und Zweck des Binärstrings ist einerseits die bessere Optik und andererseits die Tatsache, dass dadurch vom Nutzer sichergestellt werden kann, dass auch tatsächlich ein neuer Zufallswert erzeugt worden ist.

Abhängig davon, ob JavaScript aktiviert oder deaktiviert ist, wird der Binärstring im Hintergrund auf eine unterschiedliche Art und Weise generiert. Für die serverseitige Erzeugung des Binärstrings (bei deaktiviertem JavaScript) werden die PHP-Funktionen mt_rand() und decbin() eingesetzt. Die erste Funktion erzeugt die eigentlich Zufallszahl und die zweite dient zur Konvertierung der Dezimalzahl in eine Binärzahl. Prinzipiell wird folgender Algorithmus angewendet:

1
2
$random_string = "";
while(strlen($random_string) < GEWÜNSCHTE_LÄNGE) $random_string .= decbin(mt_rand(ZAHL1, ZAHL2));

Im Falle einer clientseitigen Erzeugung des zufälligen Binärstrings (bei aktiviertem JavaScript) wird ein modifiziertes Fisher-Yates-Verfahren angewendet:

1
2
3
4
5
6
7
8
9
var string = "010010101010010101010101010110101010101001011010";
var n = string.length;

for(var i = n - 1; i > 0; i--) {
	var j = Math.floor(Math.random() * (i + 1));
	var tmp = string[i];
	string[i] = string[j];
	string[j] = tmp;
}

Zufallsgenerator 3 für Zufallsantwort

Die vorherigen Zufallsgeneratoren erzeugen einigermaßen gute Zufallszahlen, welche jedoch noch verbesserungsfähig sind. Die Erzeugung der Zufallsantwort erfolgt daher stets serverseitig durch die PHP-Funktion random_int(), welche kryptographisch sichere Pseudo-Zufallszahlen generiert:

1
2
if((bool)random_int(0, 1)) $zufallsantwort = "JA";
else $zufallsantwort = "NEIN";
Teile diese Seite
Erstellt am 20.11.2016 | Zuletzt geändert am 24.05.2018