Быки-Коровы Игра онлайн Решение программы за 6 ходов


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

  1. Метод перебора вариантов в игре Быки-Коровы
  2. Правила и варианты игры
  3. Этапы решения задачи для алгоритма
  4. Суть Алгоритма и стратегия игры Быки и Коровы (скачать программу)
  5. Где похожие задачи? Перспективы прикладного применения
  6. О варианте игры Быки и Коровы с буквами и словами
  7. Калькулятор - это автоматизация

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


Метод перебора вариантов в игре Быки-Коровы

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

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

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

Метод перебора вариантов в игре Быки-Коровы   Калькулятор - решето размещений
Рис.1        Метод перебора вариантов в игре Быки-Коровы   Калькулятор - решето размещений

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

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

Если ехе-файл Вас не удовлетворяет (например, хотите получить ответ на телефоне), то web-версия калькулятора обладает ровно той же функциональностью.

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





Правила и варианты игры

Игроки загадывают (каждый свое) числа из четырех не повторяющихся цифр и, делая поочередно ходы (свой вопрос + ответ от противника), стремятся как можно быстрее отгадать число соперника.
На первом ходе, как правило, называется случайное число, но в ответ на эту попытку, соперник должен сообщить о количестве «быков и коров», давая этим самым ориентир, насколько близка эта попытка к истине

«Бык» - верно угаданная цифра, находящаяся в нужном месте (позиции) этого числа

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

Пример:
Если Вы задумали «3456», а соперник делает ход-вопрос «1465», то Вы должны сообщить ему следующую информацию: «1 бык и 2 коровы», так как цифра 4 находится на второй позиции в обоих числах (это бык), а цифры 5 и 6 присутствуют, но их позиции не верны, то есть это две коровы. Ну и, единица (цифра 1) не является ни быком, ни коровой, так как в задуманном Вами числе отсутствует.

Понятно, что при подсчете быков и коров, надо быть не просто честным, но и предельно внимательным, так как ошибочная информация введет соперника в заблуждение, а Вам в этом случае положена «дисквалификация».





Этапы решения задачи для алгоритма

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

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

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

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





Суть Алгоритма и стратегия игры Быки и Коровы (скачать программу)

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

Суть Алгоритма и стратегия игры Быки и Коровы (скачать программу)   Об алгоритме игры Быки и Коровы
Рис.2        Суть Алгоритма и стратегия игры Быки и Коровы (скачать программу)   Об алгоритме игры Быки и Коровы

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

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

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

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

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





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

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

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

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

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





О варианте игры Быки и Коровы с буквами и словами

Понятно, что алгоритм принципиально не меняется. Вот только если цифр всего 10, то букв (пусть без Ё) в русском алфавите 32. И слова из 4 букв составлять - будет скучновато. А если из 5 букв, то...

Имеем число размещений А из 32 по 5 = 32*31*30*29*28 = 24 165 120. Это против 5040 (было в варианте из 4 цифр). В общем, компьютеру предстоит работать дольше.

Правда, Яндекс утверждает, что в его базе данных около 8 миллионов слов из 5 букв. Не знаю, стоит ли завязываться на словарь? Или все же все комбинации учитывать?

О варианте игры Быки и Коровы с буквами и словами   Сокращение (отсев) с 24 млн до 6 вариантов
Рис.3        О варианте игры Быки и Коровы с буквами и словами   Сокращение (отсев) с 24 млн до 6 вариантов

Этот буквенный калькулятор - здесь

Я не собираюсь навязывать Вам свое мнение, но считаю, что Яндекс очень упрощает решение задачи, показывая подсветкой "желтой - коров" и "зеленой - быков", поэтому и попыток дается достаточно мало. Конечно, там расчет на возможности человека, а не компьютера...

А Вы как считаете, какой вариант для калькулятора предпочтительнее?





Калькулятор - это автоматизация

«Быстро» – даже если внедрение нового процесса влечет какие-то потери (ресурсов, времени), то легко посчитать выигрыш за счет повышения КПД в дальнейшем. И, конечно, ни один руководитель (предприниматель) не пойдет на затраты прежде, чем убедится (на основе расчетов) в их целесообразности.

«Эффективно» - человеческий фактор все чаще и чаще воспринимается как «слабое звено» в производственной цепочке. Человек, просто, не может работать, как автомат. Я даже не о конвейере…. Даже в документообороте большинство ошибок – это вина человека, сотрудника.

«Недорого» - опять же выгода считается очень просто. Что было и что станет после внедрения? За какое время все затраты окупятся и пойдет чистая прибыль от экономии рабочего времени (за счет повышения КПД).

Автоматы не скандалят, не болеют, не прогуливают, а безошибочность и скорость их работы несравнимы с нашими возможностями. Единственный их недостаток – не так универсальны! Автомат затачивается и настраивается, как правило, на одну или всего несколько операций (любой человек способен на большее количество видов деятельности).

video
Калькулятор - это автоматизация
видео смотреть/скачать

Калькулятор - это автоматизация   Автоматическое составление карт раскроя (пример)
Рис.4        Калькулятор - это автоматизация   Автоматическое составление карт раскроя (пример)

Я не собираюсь навязывать Вам программные продукты, но как очень простой пример автоматизации – использование калькуляторов, которые освобождают Ваш персонал от утомительных ежедневных расчетов.

Здесь бесплатный калькулятор линейного раскроя (доски, трубы, уголок, арматура, металлический и пластиковый профиль). Интерфейс специально примитивный, т.к. я мечтаю привязать движок к Вашей базе даных (т.е. доработать программу конкретно под Ваши требования).

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



Другие примеры на тему «Компьютерные игры. Решающие калькуляторы»



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


Поделиться в соц сетях:



Комментарии :




  Добавить комментарий :      обязательные поля помечены *       (по желанию)   

Сообщение  *  (в тексте допустимы e-mail адрес и/или ссылка на Ваш сайт)

Напишите контрольный код     в это окно * 

                


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

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

Program code