/ [Из песочницы] Бот для игры в камень, ножницы, бумага
Теория
Прочитав вот это было решено найти практическое применение механизма гадалки Шеннона. Если рассматривать человека как конечный автомат, то входные данные и исходное состояние полностью определяют текущие состояние и выходные данные. Сразу скажу демо игры и ее исходников нет.
Сама игра состоит в выборе и показе сопернику одного из трех вариантов: колодец, ножницы и бумага. Причем, ножницы тонут в колодце, бумагу режут ножницы, колодец накрывается бумагой. Обозначим:
- 0 — колодец
- 1 — ножницы
- 2 — бумага
Предположим, что игра ведется достаточно долго, чтобы можно было собрать статистику, но не так долго, чтобы человек начал изменять свое поведение, раскусив алгоритм предсказания. Имеем последовательность пар чисел: (0, 1) (0, 2) (2, 2) (2, 0)..., где первое число показал бот, второе — человек. Чтобы определить победителя в паре, сравним числа. (0 — 1) % 3 = 2, значит человек проиграл, (0 — 2) % 3 = 1, значит человек победил, (2 — 2) % 3 = 0, ничья. Обозначим n — длина последовательности чисел из пар. Число возможных последовательностей равно 3^n. При n = 5 получится 243 варианта, что много больше 32 для двух вариантов выбора. Ясно что получить все варианты в течение одной игры маловероятно, поэтому усовершенствуем гадалку. Не каждый выбор человек делает опираясь на все n элементов последовательности чисел, некоторые ее элементы он игнорирует. Назовем такие элементы пустыми.
Полный текст статьи читайте на Habrahabr.ru