Quoto

Навчання / Бібліотека / Головоломки

Пляшки в ряд

ГоловоломкиСкладне

пляшок стоять у ряд на місцях від до . гравці ходять по черзі; хід полягає в тому, щоб збити або пляшку, що стоїть, або пляшки, що стоять на сусідніх місцях. Пляшки не пересуваються, тож збита пляшка лишає проміжок, який розділяє ряд. Виграє той, хто зіб’є останню пляшку. Ви ходите першим, обидва гравці грають оптимально. Перший хід визначається множиною пляшок, які він збиває. Скільки різних перших ходів гарантують вам виграш?

Для перевірки відповіді потрібен JavaScript. Підказка й розв’язок відкриваються і без нього.

Ціле число, десятковий дріб, дріб на кшталт 3/8 або відсоток.

Підказка

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

Розв’язок
  1. Якщо збити пляшку на місці , лишаться ряди по , і дзеркальне повторення кожного ходу суперника з іншого боку дає виграш, тож виграшний хід існує.
  2. Щоб порахувати всі виграшні ходи, надайте кожному ряду з пляшок значення : найменше ціле невід’ємне число, якого немає серед XOR значень частин, що лишаються після його ходів.
  3. Звідси значення від до такі: , , , , , , , , , , , , , , , і перший хід виграє тоді й лише тоді, коли XOR значень рядів, які він лишає, дорівнює .
  4. Жоден хід, що збиває пляшки, не підходить, а збиття пляшки виграє, коли лишаються ряди з і , і або і пляшок, у будь-якому порядку.
  5. Це пляшки на місцях , , , і , тож відповідь .

Відповідь: