MrMurphy1: der Zufall mt_rand ist nicht zufällig genug

Beitrag lesen

Hallo

Das Problem tritt bei allen einzelnen Zufallsereignissen auf und ist ganz normal. Sonst wäre es kein Zufall mehr.

der Zufall mt_rand ist nicht zufällig genug

Der übliche Logikfehler.

Dieser Ansatz ist falsch. Du willst doch genau das Gegenteil, den Zufall einschränken. Die Ereignisse sollen gleichmäßig auftreten, aber innerhalb der Gleichmäßigkeit in zufälliger Reihenfolge.

Und genau das ist die Lösung. Du schmeißt gezinkte Würfel in einen Sack. Einer, der nur Einsen anzeigt, einer der nur Zweien anzeigt und so weiter. Praktischer statt der Würfel ist natürlich etwas, was man sowieso im Haus hat, aber darum geht es in der Erläuterung nicht.

Dann läßt du einen nach dem anderen ziehen. Wenn alle gezogen sind wieder von vorne. So wird die Zufälligkeit, dass eine Zahl öfter als eine andere gezogen wird, ausgeschaltet. Die Reihenfolge der Zahlen untereinander bleibt aber zufällig.

Übertragen auf dein Problem: Du erstellst eine Abspielliste mit allen Liedern und gibst denen eine zufällige Reihenfolge. Wenn die abgespielt ist wird die Reihefolge erneut in eine zufällige Reihenfolge gebracht und alle Lieder werden abgespielt.

Du kannst noch weitere Zufallskiller einbauen, um die Lieder zufällig, aber gleichmäßig abzuspielen.

Zum Beispiel die Lieder innerhalb der Abspielliste in Blöcke aufteilen. Die Anzahl der Blöcke hängt von der Anzahl der Lieder ab, jeder Block sollte mehrere Lieder enthalten. Bei sechzig Liedern könnten die Lieder auf sechs Blöcke verteilt werden.

Nach dem ersten Durchlauf aller Lieder werden die Blöcke um eine Position verschoben und die Lieder nur innerhalb der Blöcke neu sortiert. So werden die Lieder immer in einem gewissen Abstand voneinander gespielt. Bei sechs Blöcken werden die Lieder so sechs mal abgespielt. Danach ist wieder der erste Block vorne, die Lieder werden komplett neu auf die Blöcke verteilt und es geht wieder los.

Gruss

MrMurphy