Задание №19: Теория игр: выигрышная стратегия (1 ход)
Основные типы и прототипы задания №19:
Одна куча камней (Победа за 1 ход)
Две кучи камней (Победа Вани за 1 ход)
Условие задания
*(П. Тюрин) Два игрока, Паша и Валера, играют в следующую игру: складывают в одну кучу белые и чёрные камни. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может
а) добавить в кучу один белый камень
б) добавить в кучу два белых камня
в) добавить в кучу один чёрный камень
г) добавить в кучу два чёрных камня
Для того чтобы делать ходы, у каждого игрока есть неограниченное количество белых и чёрных камней. В начальной куче может быть любое количество комбинаций белых и чёрных камней, в том числе куча может быть без камней. Победителем считается тот, кто получил суммарно в куче более 7 камней.
Пример. В начальной куче было три белых камня и два чёрных камня. Такую комбинацию камней назовём позицией и будем обозначать (3,2). Т.к. первый ход делает Паша, то он может получить следующие позиции: (4,2), (3,3), (5,2), (3,4).
Ответьте на следующие вопросы:
Вопрос 1. Известно, что Валера выиграл своим первым ходом после первого хода Паши. Укажите количество различных комбинаций камней в куче, при которых такая ситуация возможна.
Вопрос 2. Найдите наименьшее и наибольшее значение количества камней в куче, при которых выполняются два условия:
– у Паши есть выигрышная стратегия, позволяющая ему выиграть не более, чем за три хода при любой игре Валеры;
– у Паши нет выигрышной стратегии, позволяющей ему выиграть не более, чем за два хода.
Найденные значения запишите в ответе в порядке возрастания.
Вопрос 3. Укажите количество начальных комбинаций камней в куче, при которых Валера имеет выигрышную стратегию.
а) добавить в кучу один белый камень
б) добавить в кучу два белых камня
в) добавить в кучу один чёрный камень
г) добавить в кучу два чёрных камня
Для того чтобы делать ходы, у каждого игрока есть неограниченное количество белых и чёрных камней. В начальной куче может быть любое количество комбинаций белых и чёрных камней, в том числе куча может быть без камней. Победителем считается тот, кто получил суммарно в куче более 7 камней.
Пример. В начальной куче было три белых камня и два чёрных камня. Такую комбинацию камней назовём позицией и будем обозначать (3,2). Т.к. первый ход делает Паша, то он может получить следующие позиции: (4,2), (3,3), (5,2), (3,4).
Ответьте на следующие вопросы:
Вопрос 1. Известно, что Валера выиграл своим первым ходом после первого хода Паши. Укажите количество различных комбинаций камней в куче, при которых такая ситуация возможна.
Вопрос 2. Найдите наименьшее и наибольшее значение количества камней в куче, при которых выполняются два условия:
– у Паши есть выигрышная стратегия, позволяющая ему выиграть не более, чем за три хода при любой игре Валеры;
– у Паши нет выигрышной стратегии, позволяющей ему выиграть не более, чем за два хода.
Найденные значения запишите в ответе в порядке возрастания.
Вопрос 3. Укажите количество начальных комбинаций камней в куче, при которых Валера имеет выигрышную стратегию.
Ответ:
1) 18<br/>2) 0 1<br/>3) 9
Шаблон решения на 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]}")