Diese Seite funktioniert am besten mit aktiviertem JavaScript!

Beschreibung: Zufallsgenerator - Gruppen bilden

Zufallsgenerator Gruppen bilden

Auf dieser Seite wird die Funktionsweise des Zufallsgenerators "Gruppen bilden" erläutert. In den Generator können verschiedene Namen eingegeben werden, wovon anschließend Gruppen mit gewünschter Größe zufällig gebildet werden. Hiermit können beispielsweise Mannschaften für diverse Spiele zusammengestellt werden.

Zufallsgenerator "Gruppen bilden"

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 Gruppen gebildet?

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

Die Funktionsweise dieser Zufallsgeneratoren wird hier erklärt.

Zufallsgenerator 3 für Zusammenstellung der Gruppen

Die vorherigen Zufallsgeneratoren erzeugen einigermaßen gute Zufallszahlen, welche jedoch noch verbesserungsfähig sind. Die Bildung der Gruppen erfolgt daher stets serverseitig durch die PHP-Funktion random_int(), welche kryptographisch sichere Pseudo-Zufallszahlen generiert. Sofern die Anzahl der Gruppen festgelegt wird, werden die Gruppen wie folgt gebildet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Das Array $namen enthält alle Namen

// Solange noch nicht alle Namen ausgewählt worden sind
while($anzahl_namen > 0) {
	
	// Für alle Gruppen
	for($g = 1; $g <= $anzahl_gruppen && $anzahl_namen > 0; $g++) {
		
		$index 			= random_int(0, $anzahl_namen - 1);
		$zufallsgruppen[$g][] 	= $namen[$index];
		unset($namen[$index]);					// Eintrag löschen
		$namen 			= array_values($namen);		// Reset indexes
		$anzahl_namen--;
		
	}
	
}

Wenn nicht die Anzahl der Gruppen, sondern die Anzahl der Personen pro Gruppe angegeben wird, sieht der Algorithmus wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Das Array $namen enthält alle Namen

// Solange noch nicht alle Namen ausgewählt worden sind
for($g = 1; $anzahl_namen > 0; $g++) {
	
	// Solange die Gruppe noch nicht voll ist
	for($i = 1; $i <= $anzahl_personen_pro_gruppe && $anzahl_namen > 0; $i++) {
		
		$index 			= random_int(0, $anzahl_namen - 1);
		$zufallsgruppen[$g][] 	= $namen[$index];
		unset($namen[$index]);					// Eintrag löschen
		$namen 			= array_values($namen);		// Reset indexes
		$anzahl_namen--;
		
	}
	
}
Teile diese Seite
Anzeige
Erstellt am 28.12.2017 | Zuletzt geändert am 16.01.2018