Логическая игра быки-коровы. Алгоритм решения за 6 ходов!

Не надо бояться решать задачи перебором! Даже если, на первый взгляд, количество вариантов кажется огромным…
Нужно, всего лишь, тщательно обдумать условие задачи и выявить ряд ограничений… А каждое ограничение в разы сокращает перебор…

  1. Решение задач: метод перебора вариантов, на примере игры Быки-Коровы
  2. как решать Быки-Коровы
  3. Алгоритм и стратегия игры Быки и Коровы
  4. Где похожие задачи? Перспективы прикладного применения

Таким образом, после наложения всех ограничений (произведения вероятностей) число вариантов, как правило, становится вполне приемлемым.


Решение задач: метод перебора вариантов, на примере игры Быки-Коровы


Необходимость в методе перебора возникает всякий раз, когда «неизвестных» больше, чем ограничений (условий или причинно-следственных связей). Любое уравнение - это пример такого органичения (причинно-следственной связи).

Если уравнение одно, а неизвестных переменных две, то решение такого уравнения имеет несколько решений (не единственное).

Да, в этом случае в одну переменную в цикле, поочередно вставляем все допустимые значения и после этого получаем "одно уравнение - одна неизвестная".

Решение задач: метод перебора вариантов, на примере игры Быки-Коровы
Рис.1        Решение задач: метод перебора вариантов, на примере игры Быки-Коровы

На этом рисунке показано, как три ограничивающих условия «вопрос-ответ» сокращают количество вариантов перестановок с 5040 до 3 !!!

Вот такой калькулятор (решето) для игры БЫКИ-КОРОВЫ, который отсеивает все не нужные варианты перестановок!

скачать ехе-файл для тестирования



как решать Быки-Коровы


Первое, что необходимо - это умение подсчитывать количества «быков-коров», в задаваемых противником вопросах. Это не сложно и в Интернете достаточно примеров…

Второе, что необходимо - это решето, по отсеиванию «забракованных» перестановок после каждого ответа противника…

И третье - это алгоритм, который бы выдавал «следующий оптимальный вопрос».

Для справки: в Википедии игра названа «легкой».



Алгоритм и стратегия игры Быки и Коровы


Я могу доказать, что на седьмом ходе, программа не вопрос задает, а уже 100% результат сообщает. Тем не менее, противник получает право на седьмой ход. С правилами не поспоришь. Поэтому кто-то обоснованно может назвать этот алгоритм "за 7 ходов", но я считаю, что все-таки за 6…

Об алгоритме игры Быки и Коровы
Рис.2        Об алгоритме игры Быки и Коровы

Решатель - это симбиоз "решета" по отсеиванию перестановок и умения задавать умно-оптимальные вопросы.

А еще необходимо перепроверять пользователя, чтобы он не ошибся в подсчете быков и коров

6-ой ответ противника на вопрос - это максимум, чтобы в решете осталась одна перестановка (даже при самом плохом раскладе). Если вопросы задаешь «умные». А за пять ходов-ответов - это невозможно гарантировать. Только, на удачу! Но, на удачу, и с первого хода может получиться…

Флажок «с гарантией за 6 ходов» можно снимать, если играете с человеком, а не с другой программой или сервисом. Быстрее выиграете… Но с противником-машиной такие вольности не пройдут.

скачать ехе-файл для тестирования



Где похожие задачи? Перспективы прикладного применения


Может кто-нибудь предложить прикладное применение этому алгоритму (приложению)?

Ведь «маленькие кусочки информации» машина увязывает в одно целое и на основании этого получается «достаточная информация» для принятия решения о следующем вопросе (остальные функции тривиальны).

Хотелось бы такую идею услышать и поучаствовать в ее реализации.

Другие примеры на тему «Компьютерные игры»





Если у Вас остались вопросы, то задать их Вы можете, нажав на эту кнопочку ...






Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...
Автоматизация документов MS Office. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
исходный код комментарии цена минимальная


Не попадайтесь на удочку мошенников-кидал...
Сайт помощи студентам по программированию и информатике

Program code