I dadi non transitivi sono simpatici piccoli giocattoli che sfidano la nostra intuizione nella teoria della probabilità. Avremo bisogno di alcune definizioni per questa sfida:
Considera due dadi A e B che vengono lanciati contemporaneamente. Diciamo che A batte B se la probabilità di A che mostra un numero maggiore di B è strettamente maggiore della probabilità di B che mostra un numero più grande di A .
Consideriamo ora un insieme di tre dadi, con le etichette A , B , C . Un tale set di dadi si chiama non transitivo se
- o A batte B , B batte C e C batte A
- o C batte B , B batte A e A batte C .
Come uno dei miei esempi preferiti, considera i dadi Grime , che hanno i seguenti lati:
A: 3 3 3 3 3 6
B: 2 2 2 5 5 5
C: 1 4 4 4 4 4
È interessante notare che la media di ogni dado è 3,5, proprio come un dado normale.
Si può dimostrare che:
- A batte B con una probabilità di 7/12.
- B batte C con una probabilità di 7/12.
- C batte A con una probabilità di 25/36.
Ora questi dadi particolari sono ancora più strani. Se tiriamo ogni dado due volte e sommiamo i risultati, l'ordine di quale battito che viene invertito:
- B batte A con una probabilità di 85/144.
- C batte B con una probabilità di 85/144.
- A batte C con una probabilità di 671/1296.
Chiamiamo un set di dadi con questa proprietà Grime-non transitivo .
D'altra parte, se i dadi mantengono il loro ciclo originale quando usano due lanci, li chiamiamo fortemente non transitivi . (Se non esiste alcun ciclo per due lanci, li chiamiamo semplicemente non transitivi .)
La sfida
Dato tre dadi a sei facce, determinare quale delle proprietà sopra questo insieme contiene, e l'uscita di uno dei seguenti stringhe: none
, nontransitive
, Grime-nontransitive
, strongly nontransitive
.
È possibile scrivere un programma o una funzione, accettare input tramite STDIN, argomento della riga di comando, argomento prompt o funzione e scrivere il risultato su STDOUT o restituirlo come stringa.
Si può presumere che tutti i lati siano numeri interi non negativi. Non puoi presumere che i lati o i dadi siano in un ordine particolare. Puoi inserire input in qualsiasi elenco o formato stringa conveniente.
Questo è il golf del codice, quindi vince la risposta più breve (in byte).
Casi test
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
Se vuoi testare il tuo codice in modo ancora più approfondito, Peter Taylor è stato così gentile da scrivere un'implementazione di riferimento, che ha classificato tutti i ~ 5000 set di dadi con i lati da 1 a 6 e una media di 3,5. Collegamento Pastebin
1 2 2 4 6 6, 1 2 3 5 5 5, 2 3 4 4 4 4
Ricevo A <B 17/36, B> C 19/36, C <A 16/36.