Нетранзитивні кістки - це приємні маленькі іграшки, які протистоять нашій інтуїції в теорії ймовірностей. Для цього нам знадобиться кілька визначень:
Розглянемо дві кістки А і В, які кидаються одночасно. Ми говоримо , що б'ється В , якщо ймовірність А показує більшу кількість , ніж B строго більше , ніж ймовірність B показує більшу кількість , ніж A .
Тепер розглянемо набір з трьох кісток, з етикетками , B , C . Такий набір кісток називається неперехідним, якщо
- або A б'є B , B б'є C і C б'є A
- або C б'є B , B б'є і б'ється C .
Як один з моїх улюблених прикладів, розгляньте кубики Grime , які мають такі сторони:
A: 3 3 3 3 3 6
B: 2 2 2 5 5 5
C: 1 4 4 4 4 4
Цікаво, що середня величина кожного штампу - 3,5, як і звичайна.
Можна показати, що:
- Б'є B з ймовірністю 7/12.
- B б'є C з вірогідністю 7/12.
- C б'є А з вірогідністю 25/36.
Зараз ці кубики ще більш дивні. Якщо ми прокручуємо кожну штамп двічі і складаємо результати, порядок перемоги яких перевертається:
- B б'є А з вірогідністю 85/144.
- C б'є B з вірогідністю 85/144.
- Б'є C з імовірністю 671/1296.
Назвемо набір кісток з цією властивістю Grime-нетрадиційний .
З іншого боку, якщо кубики зберігають свій початковий цикл при використанні двох кидків, ми називаємо їх сильно нетрасивними . (Якщо циклу немає для двох кидків, ми просто називаємо їх нетрасивними .)
Змагання
Беручи під увагу три шестигранного кубика, визначають , які із зазначених вище властивостей цього набору має, і вихід одного з наступних рядків: none
, nontransitive
, Grime-nontransitive
, strongly nontransitive
.
Ви можете написати програму або функцію, взяти вхід через STDIN, аргумент командного рядка, підказку або аргумент функції та записати результат у STDOUT або повернути його як рядок.
Ви можете припустити, що всі сторони є невід’ємними цілими числами. Ви не можете припустити, що сторони або кістки в якомусь конкретному порядку. Ви можете взяти вхід у будь-якому зручному списку чи рядковому форматі.
Це кодовий гольф, тому найкоротша відповідь (у байтах) виграє.
Випробування
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
Якщо ви хочете ще більш ретельно перевірити свій код, Пітер Тейлор був досить люб'язним, щоб написати контрольну реалізацію, яка класифікувала всі ~ 5000 наборів кісток зі сторонами від 1 до 6 та середньою величиною 3,5. Посилання на пастебін
1 2 2 4 6 6, 1 2 3 5 5 5, 2 3 4 4 4 4
Я отримую A <B 17/36, B> C 19/36, C <A 16/36.