Палочки

From
Alexey Burdin (2:5012/32.768)
To
Alex Sadovsky
Date
2002-11-11T03:08:05Z
Area
RU.ALGORITHMS
> From: /Unknown/

Как после вчерашнего, Alex ?

 AS> Думаю, всем известна игpа: на столе лежат 20 одинаковых палочек. За
 AS> один ход игpок может взять одну, две или тpи палочки. Пpоигpывает тот,
 AS> кто забиpает последнюю палочку.
    Ну довольно стандартный подход: представить всё это дело как состояния
    (стола с палочками) в граф. ПотОм раскрасить все вершины графа так, что
    + Если состояние стола представлено "белой" вершиной графа, то существует
    ход, приводящий к "белой" вершине при любом ходе соперника. Также "белой"
    вершиной является выигрышная позиция (пустой стол)
    + "Черной" вершиной являются все такие позиции, в которых при любом вашем
    ходе существует ход противника, позволяющий предоставить вам "чёрную"
    позицию. (возможно, также "чёрной" является заведомо проигрышная позиция,
    если таковая имеется)

    Применительно сюда:
    0 палочек ── белая позиция
    1 палочка ── черная позиция
    2 палочки ── белая позиция (взять 1 палочку)
    3 палочки ── белая (вз 2)
    4 б (3)
    5 ч (при ходе 1 ответ 3, 2 ── 2, 3 - 1)
    6 б (1)
    ...
    9 ч (... см. выше)
    ...
    4n+1 - ч, остальные - б.
 AS> Не подскажете ли алгоpитм беспpоигpышной игpы?
    20 палочек ── белая позиция.
    Надо брать палочки так, чтобы их оставалось на столе 4n+1.
    Это алгоритм 1-го игрока. При правильных действиях первого игрока у
    второго шансов на победу нет. (симметричность задачи)
    Этот же алгоритм может быть выигрышным для второго игрока, если на
    каком-то ходе ошибся первый игрок.

                Всего хорошего. Alexey.
... А что подyмал кpолик, никто не yзнал,
--- потомy что кpолик был очень воспитанный.
 * Origin: Megabyte (2:5012/32.768)