Статья Автор: Лебедев Дмитрий

Заготовка для задач

НАСТРАИВАМ ПРОГРАММУ НА РЕШЕНИЕ ЗАДАЧИ (kompege.ru, задача 5885)

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней.
Игроки ходят по очереди, первый ход делает Петя.
За один ход игрок может изменить количество камней в куче на 1, 3 или 7, но обязательно в сторону числа 42.
Если больше 42, то забирает камни из кучи. Если меньше 42, то добавляет камни.
Игра завершается в тот момент, когда количество камней в куче становится ровно 42.
Игрок, сделавший ход, который привел к значению 42, считается победителем.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Задание 19.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети.
Укажите минимальное значение S, когда такая ситуация возможна.

Задание 20.
Найдите два наименьших значения S, при которых у Пети есть выигрышная стратегия,
причём одновременно выполняются два условия:
        − Петя не может выиграть за один ход;
        − Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
 Найденные значения запишите в ответе в порядке возрастания.

Задание 21.
Найдите максимальное значение S, при котором одновременно выполняются два условия:
        – у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
         – у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. 


 

Для решения задания надо создать словарь раскраски и множество состояний
В словарь раскраски Dict достаточно поместить только одно значение Dict={N :0} (в задаче N=42)
В множестово состояний  достаточно поместить все значения от 1 до 25*N за исключением N
(25 - нас интересует не более 5 тактов работы)
В качестве основы программы можно взять любой из вариантов



Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать