Wer hin und wieder in der Quasselstunde sitzt hört früher oder später das der Bot manipuliert ist. Am gleichen Abend gewinnen einer oder wenige die meisten Gewinne, während der Rest leer ausgeht.
Wie funktioniert der Bot?
Der Bot arbeitet mit einem Standardzufallsgenerator, der mithilfe eines Algorithmus und der Systemzeit einen Zufallswert festlegt. Die Teilnehmer werden jeweils mit einer Zahl verbunden, diese Zahlen werden als Parameter für den Bot verwendet und am Ende gewinnt der Spieler, dessen Zahl der Zufallsgenerator aufruft.
Beispiel 1: 10 Runden
Wir haben 6 Teilnehmer und 10 Runden. Die Teilnehmer haben wie folgt gewonnen:
Eine Verteilung die man durchaus als Zufällig bezeichnen kann.
In dieser Runde ist eine Dominanz von 2 und 5 zu erkennen.
In dieser Runde ist eine Dominanz von 3 und 5 zu erkennen.
Beispiel 2: 100 Runden
Weiterhin 6 Teilnehmer, nur das diesesmal 100 Runden gespielt werden.
1 und 5 stechen wieder etwas heraus, aber es gibt keine so großen Unterschiede zwischen den Teilnehmern wie bei 10 Runden.
Die Verteilung der ersten 100 Runden zieht sich weiter, es ist keine perfekte Verteilung aber nähert sich ihr an.
Runde 3: 10000 Runden
Zuletzt schauen wir uns einmal 10000 Runden bei 6 Teilnehmern an.
Die Verteilung gibt eine zufällige Verteilung vor.
Warum sieht es zufälliger aus, wenn mehr Runden gespielt werden
Deswegen nennt man es Pseudozufallszahlengenerator. Da als Grundlage die Systemzeit verwendet wird, kann es bei mehreren Runden ohne ausreichenden Abstand dazu kommen, das der Algorhitmus das gleiche Ergebnis ausgibt. Aus diesem Grund kann es bei einer geringen Anzahl an Runden, in kurzer Zeit oder in einem regelmäßigen Abstand zu einer Häufung einzelner Ergebnisse kommen.
Folgender Code wurde zur Erzeugung der Zahlen verwendet:
int zufallsZahl, zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, x;
Random RandomZahl = new Random();
Console.WriteLine("Anzahl an Runden eingeben:");
x = Convert.ToInt32(Console.ReadLine()) + 1;
zahl1 = 0;
zahl2 = 0;
zahl3 = 0;
zahl4 = 0;
zahl5 = 0;
zahl6 = 0;
for (int i = 1; i < x; i++)
{
zufallsZahl = RandomZahl.Next(1, 7);
if (zufallsZahl == 1)
{
zahl1++;
}
else if (zufallsZahl == 2)
{
zahl2++;
}
else if (zufallsZahl == 3)
{
zahl3++;
}
else if (zufallsZahl == 4)
{
zahl4++;
}
else if (zufallsZahl == 5)
{
zahl5++;
}
else if(zufallsZahl == 6)
{
zahl6++;
}
}