Nichttransitive Würfel sind hübsche Spielzeuge, die sich unserer Wahrscheinlichkeitstheorie widersetzen . Für diese Herausforderung benötigen wir einige Definitionen:
Betrachten Sie zwei Würfel A und B, die gleichzeitig geworfen werden. Wir sagen , dass A schlägt B , wenn die Wahrscheinlichkeit von A eine größere Zahl als zu zeigen , B streng größer als die Wahrscheinlichkeit ist B eine größere Zahl als zu zeigen , A .
Jetzt einen Satz von drei Würfeln betrachten, mit Etikett A , B , C . Ein solcher Würfelsatz heißt nichttransitiv, wenn
- entweder A schlägt B , B schlägt C und C schlägt A
- oder C schlägt B , B schlägt A und A schlägt C .
Betrachten Sie als eines meiner Lieblingsbeispiele die Grime-Würfel mit den folgenden Seiten:
A: 3 3 3 3 3 6
B: 2 2 2 5 5 5
C: 1 4 4 4 4 4
Interessanterweise beträgt der Mittelwert jedes Würfels 3,5, genau wie bei einem normalen Würfel.
Das kann man zeigen:
- A schlägt B mit einer Wahrscheinlichkeit von 7/12.
- B schlägt C mit einer Wahrscheinlichkeit von 7/12.
- C schlägt A mit einer Wahrscheinlichkeit von 25/36.
Jetzt sind diese besonderen Würfel noch seltsamer. Wenn wir jeden Würfel zweimal würfeln und die Ergebnisse addieren, wird die Reihenfolge der Schläge umgekehrt:
- B schlägt A mit einer Wahrscheinlichkeit von 85/144.
- C schlägt B mit einer Wahrscheinlichkeit von 85/144.
- A schlägt C mit einer Wahrscheinlichkeit von 671/1296.
Nennen wir eine Reihe von Würfeln mit dieser Eigenschaft Grime-nicht-transitiv .
Andererseits, wenn die Würfel ihren ursprünglichen Zyklus behalten, wenn sie zwei Würfe verwenden, nennen wir sie stark nicht-transitiv . (Wenn es für zwei Würfe überhaupt keinen Zyklus gibt, nennen wir sie einfach nichttransitiv .)
Die Herausforderung
Gegeben drei sechsseitige Würfel, festzustellen , welche der oben genannten Eigenschaften dieser Satz hat und die Ausgabe einer der folgenden Strings: none
, nontransitive
, Grime-nontransitive
, strongly nontransitive
.
Sie können ein Programm oder eine Funktion schreiben, Eingaben über STDIN, Befehlszeilenargument, Eingabeaufforderung oder Funktionsargument vornehmen und das Ergebnis in STDOUT schreiben oder als Zeichenfolge zurückgeben.
Sie können davon ausgehen, dass alle Seiten nicht negative ganze Zahlen sind. Sie können nicht davon ausgehen, dass die Seiten oder die Würfel in einer bestimmten Reihenfolge sind. Sie können Eingaben in einem beliebigen Listen- oder Zeichenfolgeformat vornehmen.
Dies ist Codegolf, daher gewinnt die kürzeste Antwort (in Bytes).
Testfälle
none
1 2 3 4 5 6, 6 5 4 3 2 1, 1 3 5 2 4 6
1 1 1 6 6 6, 4 4 4 5 5 5, 5 5 5 5 5 5
1 1 2 5 6 6, 2 2 3 4 4 6, 2 3 3 4 4 5
0 1 2 3 4 5, 1 1 2 3 3 5, 1 2 2 2 3 5
3 13 5 7 13 7, 5 7 11 5 7 13, 5 9 13 5 7 9
nontransitive
1 2 2 4 6 6, 1 2 3 5 5 5, 2 3 4 4 4 4
1 4 4 4 4 4, 2 2 2 4 5 6, 2 3 3 3 5 5
1 2 1 6 5 6, 3 1 3 6 2 6, 2 4 2 4 4 5
3 4 6 6 7 7, 4 4 4 7 7 7, 5 5 5 5 6 7
2 5 11 11 14 14, 5 5 5 14 14 14, 8 8 8 8 8 17
Grime-nontransitive
3 3 3 3 3 6, 2 2 2 5 5 5, 1 4 4 4 4 4
1 1 4 5 5 5, 2 2 2 3 6 6, 3 3 3 4 4 4
2 1 4 6 4 4, 2 4 5 2 3 5, 3 3 6 3 3 3
11 11 13 15 15 16, 12 12 12 13 16 16, 13 13 13 14 14 14
4 4 7 16 19 19, 4 7 13 13 13 19, 4 10 10 10 16 19
strongly nontransitive
2 2 2 5 5 5, 2 3 3 3 5 5, 1 1 4 5 5 5
2 2 2 3 6 6, 2 2 2 5 5 5, 2 2 4 4 4 5
1 5 1 3 6 5, 6 6 4 2 2 1, 5 3 4 3 4 2
0 0 2 4 4 5, 0 1 1 3 5 5, 1 1 2 3 4 4
1 1 9 17 17 21, 1 5 5 13 21 21, 5 5 13 13 13 17
Wenn Sie Ihren Code noch ausführlicher testen möchten, hat Peter Taylor freundlicherweise eine Referenzimplementierung geschrieben, die alle ~ 5000 Würfelsätze mit den Seiten 1 bis 6 und einem Mittelwert von 3,5 klassifiziert. Pastebin-Link
1 2 2 4 6 6, 1 2 3 5 5 5, 2 3 4 4 4 4
Ich erhalte A <B 17/36, B> C 19/36, C <A 16/36.