Wie zufällig sind die Auslosungen?

Begonnen von Marcool, 11. April 2013, 15:37:01

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Andre

Wir reden hier vom Sekundenbereich ;) ... also 5-10 Sekunden pro Auslosung maximal. Aktuell ist es eher so im Bereich < 1 Sekunde.

edit: ich bin mir mittlerweile auch sicher das der Algorithmus theoretische so wie ich ihn beschrieben habe eventuell keine Lösung findet, denke aber das das bei uns nur selten auftreten sollte.

kandara

Herausforderung. Wenn ich das in Java halten kann, dann sollte das ja kein Problem sein.

Ziel wäre <5 jedoch max 10 Sekunden.

kandara

Unfassbar aber war, ich habe Zeit gefunden und einen kleinen Algorithmus geschrieben. Kannste mir irgendwie Testdaten zur Verfügung stellen? Also Paare von "Name des Teams" und Name des Lands"? Es wäre sogar noch besser wenn du mir eine Anzahl an Ländern und min/max Teamaufkommen pro Land mitteilen könntest.

Ich habe zwar kleine Szenarien aber mit diesen auch gleich ein Extrema gefunden in denen mein reiner Zufallsalgorithmus sich in die Ecke gedrückt fühlt.

kandara

Ich habe mal den Tauschalgorithmus evaluiert mit Testläufen die 1000 Teams beinhalten aus 100 Ländern. Jedes Land stellt dabei mindestens 4 maximal 40 Teams.

Szenario 1: 1000 Testläufe mit 4er Gruppen:
Diese Teams habe ich dann in 1000 Testläufen auf den Algorithmus geworfen der dabei 4er Gruppen erstellen soll, also 500 an der Zahl.
Ergebnis:
Durchschnittliche Laufzeit 0.005 ms
Längste laufzeit: 15 ms


Szenario 2: 1000 Testläufe mit 2 er Gruppen:
Diese Teams habe ich dann in 1000 Testläufen auf den Algorithmus geworfen der dabei 2er Gruppen erstellen soll also 250 an der Zahl.
Durchschnittliche Laufzeit 0.008 ms
Längste laufzeit: 74 ms

Ich habe das ganze in Java geschrieben und evaluiert. Der start der JVM ist nicht mit eingerechnet. Die Zeiten beinhalten lediglich die reine Laufzeit des Algorithmus. Die sehr geringe Laufzeit liegt wohl an meinem kleinen Backofen der mit 3.4 Ghz rennt und ordentlich Speicher zur Verfügung hat. Also bitte nicht wundern beim Nachvollziehen.

Der Code ist auf Github [1] zu finden. Wie er zu benutze ist kann entweder aus dem Testprojekt abgeleitet oder durch Fragen an mich herausgefunden werden.

[1] https://github.com/IngoReimund/copamundial

Marcel


Impressum