Навчання / Бібліотека / Головоломки
Нерівні стоси монет
Є стоси монет розміром , , і . гравці ходять по черзі; хід полягає в тому, щоб забрати будь-яку додатну кількість монет рівно з одного стосу. Виграє той, хто забере останню монету. Ви ходите першим, обидва гравці грають оптимально. Рівно один перший хід гарантує вам виграш. Скільки монет забирає цей хід?
Для перевірки відповіді потрібен JavaScript. Підказка й розв’язок відкриваються і без нього.
Підказка
Обчисліть XOR розмірів і з’ясуйте, який стос можна зменшити, щоб XOR став .
Розв’язок
- Позиція в цій грі програшна для того, хто ходить, тоді й лише тоді, коли XOR розмірів стосів дорівнює .
- Крок за кроком: XOR дає , далі XOR дає , далі XOR дає .
- Стос розміру можна зменшити до XOR , лише якщо це менше за ; для цього стос має містити старший біт числа , тобто , а він є лише в .
- Тож стос із монети зменшується до XOR , тобто до , і тоді XOR чисел , , і дорівнює .
- Виграшний хід забирає монет, тож відповідь .
Відповідь: