2012-04-21 2 views
1

Два игрока играют в следующую игру. В начале игры они начинаются с n (1 < = n < = 100000) груды камней. На каждом шагу игры игрок выбирает кучу и удаляет по крайней мере один камень из этой кучи и перемещает ноль или больше камней из этой кучи в любую другую кучу, у которой все еще есть камни. Игрок проигрывает, если у него нет более возможных ходов. Учитывая начальные сваи, определите, кто победит: первый игрок или второй игрок, если оба играют отлично.Как найти игрока, которого победит

+0

помогите мне .... я пробовал этот вопрос много, но еще не смог найти правильный ответ –

+0

Вы пробовали решить случай n = 2? Как насчет случая n = 3? –

+0

Это известная проблема, известная как бобовая игра ... и восходит к много лет назад. Это был матч в Англии, который был решен. Вы будете искать в Google. Если вы не найдете решение этой проблемы, вы можете связаться со мной, чтобы помочь вам. –

ответ

0

Сначала начните с анализа позиций с известным результатом - это будет случай, когда все камни находятся в одной куче. Тогда у вас нет другой кучи, по крайней мере, с одним камнем, поэтому вы не можете выполнить вторую часть движения (это предполагает, что даже когда вы перемещаете 0 камней, все равно должна быть другая непустая куча), так что это потеряет положение.

Теперь приступите к анализу, с каких позиций вы можете попасть в позиции потери. Это будет ваш первый раунд выигрышных позиций.

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

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

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

Надеюсь, это поможет.

ПРИМЕЧАНИЕ: если вам разрешено выполнять операции на одной непустой куче, т. Е. При перемещении нулевых камней вам не нужна другая непустая куча, тогда начальная позиция потери - это когда у вас нет камней, оставшихся на все и начальная позиция победы - это когда у вас есть только одна куча с любым количеством камней.

+0

«переместите * ноль * или больше камней из этой кучи в любую другую кучу». Таким образом, множественные сваи с 1 камнем не являются проигрышной. –

+0

Хм, я, должно быть, неправильно понял это - я думал, что это хотя бы один. Будет отредактировать мой пост соответственно –

1

Это вариант Nim. Понимание решения Nim должно помочь вам лучше понять эту игру.

Для Нима игра начинается с n кучи камней. В свою очередь, каждый игрок выбирает одну кучу и удаляет по крайней мере один, возможно, больше камень из кучи. Игра заканчивается, когда осталось больше камней.

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

Смежные вопросы