Задание 20 ЕГЭ по информатике · 3AC768

ВысокаяКЭС 2.13КЭС 2.14
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в три раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 65. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах находится 65 или больше камней.
В начальный момент в первой куче было шесть камней, во второй куче – S камней; 1 ≤ S ≤ 58.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Найдите два наименьших значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
– Петя не может выиграть за один ход;
– Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.

Показать ответ
10 19
Подсказки (2)
  1. Для решения необходимо знать начальную позицию, допустимые ходы и условие окончания игры из задания 19.
  2. Проверьте, что из начальной позиции Петя не может завершить игру одним ходом, но после любого первого хода Вани у Пети есть выигрышный ход.
Решение
from functools import lru_cache
def m(x, y):
    return (x + 1, y), (x * 3, y), (x, y + 1), (x, y * 3)
@lru_cache(None)
def g(x, y):
    if x + y >= 65:
        return 'W'
    if any(g(a, b) == 'W' for a, b in m(x, y)):
        return 'W1'
    if all(g(a, b) == 'W1' for a, b in m(x, y)):
        return 'L1'
    if any(g(a, b) == 'L1' for a, b in m(x, y)):
        return 'W2'
    if all(g(a, b) in ('W1', 'W2') for a, b in m(x, y)):
        return 'L2'
for s in range(1, 59):
    if g(6, s) == 'W2':
        print('W2', s)
    if g(6, s) == 'L2':
        print('L2', s)
Частые ошибки
  • Попытка угадать правила игры по одному только номеру задания.
  • Использование типовых правил игры вместо условия конкретного варианта.

Источник: Открытый банк ФИПИ · openfipi.devinf.ru

Похожие задания

20За один ход игрок может добавить в кучу один или четыре камня либо увеличить количество камней в куче в три…Петя выигрывает вторым ходом · 0E813C20За один ход игрок может добавить в кучу один или четыре камня либо увеличить количество камней в куче в три…Петя выигрывает вторым ходом · 1C808420За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для…Петя выигрывает вторым ходом · 2B176620За один ход игрок может добавить в кучу один или четыре камня либо увеличить количество камней в куче в три…Петя выигрывает вторым ходом · 34D07020За один ход игрок может: – добавить в одну из куч (по своему выбору) 2 камня; – увеличить количество камней в…Петя выигрывает вторым ходом · 471BD220За один ход игрок может добавить в кучу один или три камня либо увеличить количество камней в куче в два…Петя выигрывает вторым ходом · 49191920За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для…Петя выигрывает вторым ходом · 4ED21520За один ход игрок может добавить в кучу один или четыре камня либо увеличить количество камней в куче в три…Петя выигрывает вторым ходом · 57765C

Нужен репетитор по информатике?

Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.

Репетиторы по информатике

Подбор репетитора

Напишите, что нужно, — команда Precettore подберёт репетитора и свяжется с вами.

Готовьтесь к ЕГЭ по информатике в Precettore

Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.