Bestimmen Sie die Häufigkeit der zahlen zeigt sich in Würfel Rollen
Für ein Spiel, das ich bin versucht zu bestimmen, die Häufigkeit, mit der ein bestimmter # zeigen sich bei einer bestimmten Anzahl der Würfel gerollt werden. Ich weiß... diese Frage scheint seltsam. Lassen Sie mich versuchen es zu erklären mit reellen zahlen.
So, für 1 sterben, die Frequenz für jede Zahl identisch sein. 1-6 die show wird die gleiche Anzahl von Zeiten.
Nun für 2 Würfel, die Dinge anders. Ich kann mir vorstellen 5,6,7 werden die meisten Häufig gerollt, während die zahlen an beiden enden des Spektrums zeigen sich weniger oder gar nicht (im Fall 1). Ich würde gerne wissen, wie die Berechnung dieser Liste und zeigen Sie Sie in der richtigen Reihenfolge, von den meisten häufigen zum weniger häufigen.
Irgendwelche Gedanken?
@duffymo - Es wäre wirklich schön, wenn um irgendeine Art von einem Algorithmus zu kommen mit ihm. Es scheint, dass in der oben beschriebenen Weise wird erfordern eine Menge von hand aufnehmen und ablegen von zahlen. Wenn mein sterben zu zählen ist dynamisch bis zu sagen wir 10, tun, von hand wirkungsloser und lästig, denke ich. 🙂
- Sind Sie mit dem hinzufügen der zahlen? Warum hast du zu dem Schluss kommen, 5,6 und 7 würde zeigen, bis mehr?
- es könnte sein, dass mir nur unter der Annahme falsch, dass 5,6,7 würde häufiger sein - aber ich Stütze diese Annahme auf der Tatsache, dass eine Rolle zu 5 könnte 2+3 & 4+1 in der Erwägung, dass eine 3 kann nur zeigen, bis mit einem 2+1; sechs 3+3, 4+2, 5+1; etc.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Groben Entwurf einer rekursiven Art und Weise, es zu tun:
Wenn ich mich nicht Irre, sollte dies ausspucken KeyValuePairs organisiert wie die [- Taste, Frequenz].
BEARBEITEN: FYI, nach dem ausführen dieser, es zeigt die Frequenzen für GetFrequenciesByOutcome(2, 6) zu sein:
2: 1
3: 2
4: 3
5: 4
6: 5
7: 6
8: 5
9: 4
10: 3
11: 2
12: 1
Gibt es 6*6 = 36 Kombinationen für zwei Würfel.
2 = 1+1 nur einmal vorkommen kann, also seine Frequenz ist 1/36.
3 = 1+2 oder 2+1, also seine Frequenz ist 2/36 = 1/18.
4 = 1+3, 2+2, oder 3+1, also seine Frequenz ist, 3/36 = 1/12.
Können Sie den rest heraus, bis zwölf.
Jeder backgammon-Spieler kennt diese gut.
Gibt es kein echtes "Algorithmus" oder simulation notwendig - es ist eine einfache Rechnung basierend auf einem abgeleiteten Formel von De Moivre:
http://www.mathpages.com/home/kmath093.htm
Und es ist nicht ein "bell-Kurve" - oder normal-Verteilung.
Fügen Sie das array von der Frequenz des vorherigen Rollen, 'Seite' Zeiten durch die Verlagerung der position, dann werden Sie das array der Frequenzen, die jeder zahlen zeigen.
Dies ist viel schneller als brute-force-simulation, da die einfache Gleichung ist die beste.
Hier ist mein Python ist3 Umsetzung.
beispielsweise
Beachten Sie, dass Sie verwenden sollten 'target number - roll count' index der Liste zu bekommen die Häufigkeit jeder Zahl. Wenn Sie möchten, um Wahrscheinlichkeiten verwenden 'Seite'^'roll count' als Nenner.
Dieser code yeilds
Es gibt viele Sachen online zu würfeln Wahrscheinlichkeit. Hier ist ein link, der mir geholfen mit einem Projekt Euler-Frage:
http://gwydir.demon.co.uk/jo/probability/calcdice.htm
Ordentlich factoid...
Wussten Sie, dass Pascal ' s Dreieck ist die Wahrscheinlichkeit Verteilung der Summen von N 2-seitige Würfel?
JavaScript-Implementierung mit dynamischer Funktion-Erstellung:
EDIT: Eher enttäuscht, niemand hat darauf hingewiesen; ersetzen musste
6 * dice
mitMath.pow(6, dice)
. Keine Verwechslungen mehr, wie die...Scheint es einige Rätsel um genau das "warum" ist dies, und zwar duffymo erklärt hat, ein Teil davon, ich freue mich auf weitere post, der sagt:
Gibt es einen gewissen Reiz auf diese. Aber es ist falsch...weil die erste Rolle beeinflusst die Chancen. Die Argumentation kann wohl am leichtesten über ein Beispiel.
Sagen, ich bin versucht, herauszufinden, ob die Wahrscheinlichkeit des rollenden 2 oder 7 ist eher auf zwei Würfel. Wenn ich den ersten Würfel und bekommen eine 3, was sind meine Chancen jetzt von Rollen insgesamt 7? Offensichtlich, 1 in 6. Was sind meine Chancen, Rollen insgesamt 2? 0 in der 6...da gibt ' s nichts kann ich roll auf den zweiten Würfel zu haben, mein insgesamt 2.
Aus diesem Grund, 7 ist sehr (die meisten) wahrscheinlich gerollt werden...denn egal welche Rolle ich auf die zuerst sterben, kann ich trotzdem auf die richtige Summe durch würfeln der richtigen Zahl auf dem zweiten Würfel. 6 und 8 sind ebenso etwas weniger wahrscheinlich, 5 und 9, und so weiter, bis wir erreichen, 2 und 12, ebenso wenig bei 1 zu 36 chance pro Stück.
Wenn dir dieses Grundstück (Summe vs-Wahrscheinlichkeit) erhalten Sie eine schöne Glockenkurve (oder, genauer gesagt, eine blockartige aproximation einer wegen der diskreten Natur des Experiments).
Nach viel recherche im Internet und stackoverflow fand ich Dr. Math erklärt es auch in einem working-Funktion (ein link in der anderen Antwort hat, eine falsche Formel). Ich konvertiert Dr. Math ist der Formel zu C# und meine nUnit-tests (die hatte schon ausfallen, bevor Sie mit anderen versuche den code) alle bestanden.
Ersten hatte ich zu schreiben ein paar Hilfsfunktionen:
Wegen der Art, wie wählen funktioniert in der Mathematik, erkannte ich, könnte ich reduzieren auf die Berechnungen, wenn ich hatte eine überladene Funktion Factorial, die mit einer unteren Schranke. Diese Funktion kann aus der Patsche helfen, wenn die Untergrenze erreicht ist.
Wenn diese an Ort und Stelle waren, war ich in der Lage zu schreiben