Бики і корови алгоритм гри

Правила гри викладені в окремій статті. а тут ми займемося вивченням питання оптимального алгоритму пошуку числа противника в грі бики й корови. І так, є загальні принципи як слід задавати питання:

Скільки комбінацій цифр можна скласти? Першу цифру можна загадати десятьма способами, другу дев'ятьма і тд. І отримуємо 10 * 9 * 8 * 7 = 5040. Ось це загальна кількість комбінацій. А варіантів відповідей може бути всього 14, вони все показані на малюнку.

Бики і корови алгоритм гри

У наведеній таблиці розглянуті всі варіанти відповідей. Найбажаніший і смачний - це 4 бика, тобто відразу виграш. І такий варіант один. Самий варіативний це 1 корова - має 1440 варіантів розстановки цифр. За великим рахунком наші подальші кроки буде визначати наш перший хід. А тут ми може покластися тільки на нашу удачу, розташування зірок, розставлених меблів по фен-шую і наявності кави. Тобто будь-яку комбінацію цифр. І по отриманому відповіді ми плануємо подальші кроки. Розглянемо варіанти, крім 4биков:

  • 0 биків, 0 корів - це теж цілком вдалий хід! Ці цифри відразу виключаємо з вгадується числа, але можемо використовувати для виявлення биків.
  • 1 бик або 1 корова - тобто ми знайшли одну цифру, але яка вона не ясно.
  • 1 бик і 1 корова, або 2 бика або 2 корови - знайшли 2 цифри.
  • 3 бика і 0 корів, 2 бика і 1 корова, 1 бик 2 корови. Знайшли 3 цифри, але найбажаніший - це три бика, всього 24 комбінації! На практиці 4 ходи.
  • 2 бика і 2 корови, 1 бик і 3 корови, 4 корови - тобто ми знайшли всі цифри. Тут ми можемо кричати ура, так як виграш вважайте у нас в кишені! Найбільше 9 комбінацій!

Подальшу стратегію розглянемо на прикладах гри, так буде набагато наочніше і простіше.

перший приклад

На перше питання 1234 ми отримали відповідь одна корова. Другим питанням була комбінація 5678. І тут удача - два бика і одна корова. Логіка третього ходу наступна: ми вгадали три цифри, потрібно визначити їх розташування. І ми точно знаємо що цифра 9 і 0 відсутні в задуманому числі. Тому беремо дві цифри з другого питання, але ставимо на інші місця і доставляємо 0 і 9.

Отримуємо таке питання: 7890, на який ми отримали відповідь 2 корови. Вітаємо - ми точно визначили 2 бика: 7 на третьому місці, 8 на четвертому. Далі ми знаємо що 5 або 6 точно є в задуманому числі. Приберемо одне і поставимо на інше місце. Останнє число візьмемо з першого питання, тут без різниці яке - чисте везіння. Отримуємо таке питання - 4578. І радіємо перемозі, ми відгадали, відповідь чотири бика!

другий приклад

На перше питання 0123 ми отримали відповідь 1 бик, 2 корови. Другим питанням задаємо 4567. Отримуємо у відповіді 1 корова. Все, ми знову виключили дві цифри - це 8 і 9. І тепер ми візьмемо дві цифри з першого питання і як зазвичай поставимо на інше місце, додамо 8 і 9.

Вийшов такий питання 2389, відповідь на який був одна корова. Здавалося б результат так собі, але не тут-то було! Скомбініруем третє питання так - візьмемо нуль з першого питання, але міняти його місце не будемо, візьмемо двійку з третього і поставимо на друге і розбавимо неіснуючими. Ось що отримали: 0289. Відповіддю було два бика! Тепер трійку теж викреслимо, а це значить, що одиничка точно в числі є. Тепер залишилося всього два варіанти і ми вибираємо 0215. І отримуємо 4 бика! Пятерочка - це чисте везіння.

третій приклад

У перший раз запитаємо 9012. Отримуємо 2 корови. Друге питання - 3456 - теж дві корови. Так, 7 і 8 виключаємо. Тепер перетасовував друге питання і приберемо одну, замінивши на сімку. Отримуємо такий варіант. 6573. Відповідь - одна корова. Що ми зрозуміли? Цифра 4 точно є і отримали розташування, де цифри 3, 5 і 6 точно не варті.

Четвертий питання формуємо так - комбінуємо третій і перше питання, міняючи місцями. Ось яку комбінацію ми отримали - 1234. Відповідь - три бика. 3 і 4 стоять на своїх місцях, перевіряємо тільки перші цифри. 9234 - відповіддю на нього було 2 бика, одна корова. Все, ми знайшли число! Тисяча дев'ятсот тридцять чотири.

четвертий приклад

Перший варіант у нас 4590, відповідь - один бик. Другий хід 1236 і відповідь три корови. Знову 7 і 8 поза грою. На третьому ходу тасуємо цифри третього питання і розбавляємо 7. 7263, що дає нам знову 3 корови. Значить одиничку викидаємо.

Тепер нам потрібно правильно розташувати наших корів і знайти бика з першого питання. Задаємо такий варіант - 4623, відповідь на нього два бика і одна корова. Значит не четвірка. Трійку ми не змінювали і тому точно можемо сказати, що саме трійка нема на своєму місці! Пробуємо ще раз - 3620. І бінго. Ми розгадали число!

Існує думка, що виявивши цифри, які точно відсутні в задуманому числі, то їх використовувати далі не можна. І слід оперувати тільки знайденими коровами, щоб знайти биків. Я дотримуюся іншої думки. "Пустушки" вкрай корисні у виявленні биків, так як ми можемо точно визначити цифри, які стоять на своїх місцях. І це не буде будь-якої втратою ходу. Навпаки, оперуючи тільки знайденими коровами можна заплутатися в тому, яка з корів в даний момент стала биком.

Я намагався в кратце описати хід своїх думок при грі в биків і корів. Звичайно, у кожного свій стиль гри. і багато що залежить від везіння. І на останок, удачі Вам і приємної гри.