Задание №19: Теория игр: выигрышная стратегия (1 ход)
Основные типы и прототипы задания №19:
Одна куча камней (Победа за 1 ход)
Две кучи камней (Победа Вани за 1 ход)
Условие задания
*(П. Тюрин) Два игрока, Паша и Валера, играют в следующую игру. Перед игроками лежит куча, содержащая белые и чёрные камни. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может
а) убрать из кучи белый камень
б) убрать из кучи два белых камня
в) убрать из кучи чёрный камень
г) убрать из кучи два чёрных камня
Игра заканчивается, когда в куче остаётся суммарно менее двух камней. Победителем считается тот, кто сделал последний ход, после которого в куче осталось менее двух камней. В начальный момент в куче может быть от одного до восьми камней каждого цвета.
Пример. В начальной куче было три белых камня и два чёрных камня. Такую комбинацию камней назовём позицией и будем обозначать (3,2). Паша первым ходом может получить следующие позиции: (2,2), (1,2), (3,1), (3,0).
Ответьте на следующие вопросы:
Вопрос 1. Известно, что Валера выиграл своим первым ходом после неудачного первого хода Паши. Укажите максимальное суммарное количество чёрных и белых камней в куче, при котором такая ситуация возможна.
Вопрос 2. Найдите наименьшее и наибольшее значение количества камней в куче, при которых выполняются два условия:
– у Паши есть выигрышная стратегия, позволяющая ему выиграть не более, чем за три хода при любой игре Валеры;
– у Паши нет выигрышной стратегии, позволяющей ему выиграть не более, чем за два хода.
Найденные значения запишите в ответе в порядке возрастания.
Вопрос 3. Укажите количество начальных комбинаций камней в куче, при которых Валера имеет выигрышную стратегию.
а) убрать из кучи белый камень
б) убрать из кучи два белых камня
в) убрать из кучи чёрный камень
г) убрать из кучи два чёрных камня
Игра заканчивается, когда в куче остаётся суммарно менее двух камней. Победителем считается тот, кто сделал последний ход, после которого в куче осталось менее двух камней. В начальный момент в куче может быть от одного до восьми камней каждого цвета.
Пример. В начальной куче было три белых камня и два чёрных камня. Такую комбинацию камней назовём позицией и будем обозначать (3,2). Паша первым ходом может получить следующие позиции: (2,2), (1,2), (3,1), (3,0).
Ответьте на следующие вопросы:
Вопрос 1. Известно, что Валера выиграл своим первым ходом после неудачного первого хода Паши. Укажите максимальное суммарное количество чёрных и белых камней в куче, при котором такая ситуация возможна.
Вопрос 2. Найдите наименьшее и наибольшее значение количества камней в куче, при которых выполняются два условия:
– у Паши есть выигрышная стратегия, позволяющая ему выиграть не более, чем за три хода при любой игре Валеры;
– у Паши нет выигрышной стратегии, позволяющей ему выиграть не более, чем за два хода.
Найденные значения запишите в ответе в порядке возрастания.
Вопрос 3. Укажите количество начальных комбинаций камней в куче, при которых Валера имеет выигрышную стратегию.
Ответ:
1) 5<br/>2) 8 9<br/>3) 21
Шаблон решения на Python
# === Задания 19-21: Теория игр (1 или 2 кучи) ===
def moves(h):
return [h + 1, h * 2]
def game(h):
if h >= 129: return 0 # Победа
next_g = [game(m) for m in moves(h)]
if any(g == 0 for g in next_g): return 1 # Победа 1 ходом (П1)
if all(g == 1 for g in next_g): return 2 # Победа 1 ходом (В1)
if any(g == 2 for g in next_g): return 3 # Победа 2 ходом (П2)
if all(g in (1, 3) for g in next_g): return 4 # Победа 2 ходом (В2)
return -1
for s in range(1, 129):
res = game(s)
if res in (1, 2, 3, 4):
print(f"S={s}: {['П1', 'В1', 'П2', 'В2'][res-1]}")