Wie hier beschrieben Ссылка , ist "Go First" Dice ein Satz von vier Würfeln, jeder mit einer einzigartigen Nummerierung, so dass:
Hier ist die Nummerierung für die vier genannten Würfel:
%Vor%Ich stinke in Mathe. Ich bin ratlos. Angesichts der oben genannten Informationen, Ich würde gerne in der Lage sein, Listen von ganzen Zahlen ("Würfel") mit einer Anzahl von Würfeln zu generieren. So dass Beispiel Ausgabe könnte so aussehen (formatiert, Python-Konsole) :
%Vor%Die Anzahl der Seiten hier wird nur als Beispiel gewählt, weil sie mit dem anderen angegebenen Beispiel übereinstimmt. Die "Fairness" jedes Würfels ist wirklich das, wonach ich suche.
Ich versichere Ihnen, das ist keine Hausaufgabe. Dies ist einfach ein entschlossener Geek, genervt von einem scheinbar trivialen Puzzle, das mich einfach nicht allein lassen wird ... und aus irgendeinem Grund kann ich es nicht richtig hinkriegen.
Ich bin mir sicher, dass es eine relativ triviale Mathematik und einen Basisalgorithmus gibt, und ich suche genau danach. Nach welcher Terminologie sollte ich suchen, wenn dies für Sie offensichtlich ist? Weil es für mich nicht ist.
Idealerweise wäre die Lösung in Python, aber ich kann auch PHP, Javascript, etwas Ruby lesen.
Dies ist ein (rechnerisch) schwieriges Problem. Es ist nicht genug, wie es zunächst aussehen mag, dass der erwartete Wert jedes Würfels derselbe ist (obwohl es merkwürdigerweise in dem Beispiel ist, das du gabst). Es ist notwendig, dass jeder Würfel bei 50% aller Instanzen des Skalarprodukts jedes Würfelelements "gewinnt".
Die Tatsache, dass der Artikel darauf hinweist, dass ein Mathematiker das Beispiel erzeugt hat, das Sie "per Hand" gegeben haben, macht es mir ein wenig angenehmer, den folgenden Brute-Force-Ansatz vorzuschlagen:
%Vor%Die Komplexität hier ist n ^ n, so dass dies allein Ihr Problem nur für sehr wenige nplayers und nsides löst. Durch Auskommentieren der kommentierten Zeilen können Sie jedoch eine Darstellung der Fairness der Würfel entlang der Iterationen des Punktprodukts prüfen, die viele Muster zu haben scheinen. Dies legt nahe, dass mehrere Heuristiken verwendet werden können, um diese Suche zu beschleunigen finde eine allgemeine Lösung.
BEARBEITEN
hat den Code für die verbesserte grafische Darstellung geändert. Hier sind ein paar Bilder, falls jemand besonders geschickt darin ist, Muster zu erkennen.
nplayers = 2, nside = 2, max_number = 8 nplayers = 2, nside = 4, max_number = 8 nplayers = 4, nside = 2, max_number = 8
Einige erste Beobachtungen:
Für die Aufzeichnung hat diese Antwort auf codegolf
einen einfachen Algorithmus, der zumindest für eine beliebige Anzahl von Seiten auf den Würfeln zu funktionieren scheint: Ссылка