Это задача из теории игр, известная как «Задача о Ниме». Для достижения победы вам нужно использовать стратегию, которая основана на состоянии "игробизнеса".
Чтобы победить, вам нужно определить сумму всех яблок на ветках и применить стратегию, основываясь на двоичной системе.
В вашем случае:
- На первой ветке 3 яблока (в двоичной системе это 011)
- На второй ветке 5 яблок (в двоичной системе это 101)
- На третьей ветке 7 яблок (в двоичной системе это 111)
Теперь нужно найти так называемое "нуль-суммовое состояние". Для этого сложите количество яблок на каждой ветке, представив их в двоичной системе, и выполните побитное XOR:
011 (3)
101 (5)
111 (7)
------
000 (0)
Полученный результат равен 0, что значит, что текущее состояние является выигрышным для игрока, который начинает. Это означает, что у второго игрока есть стратегия, позволяющая его победить, если он будет играть оптимально.
Однако, если бы сумма была не равна 0, то первый игрок мог бы сделать ход на одну из веток, чтобы привести состояние к нулевому. Например, вы могли бы попробовать убрать яблоки таким образом, чтобы в результате остались ветки с таким же итоговым значением в битах, чтобы у вашего соперника не осталось выигрыша.
Краткая стратегия: старайтесь всегда оставлять сопернику такое количество яблок на ветках, чтобы сумма по модулю 2 была равна 0.