Задание 19 21 егэ информатика 2022 в excel

На уроке рассмотрен разбор 19, 20, 21 задания ЕГЭ по информатике: дается подробное объяснение и решение задания.

Читать текстовую версию — https://labs-org.ru/ege-19/

Объяснение заданий 19, 20 и 21 ЕГЭ по информатике

19-е задание: «Анализ алгоритма логической игры»

Уровень сложности — повышенный,

Требуется использование специализированного программного обеспечения — нет,

Максимальный балл — 1,

Примерное время выполнения — 6 минут.

Проверяемые элементы содержания: Умение анализировать алгоритм логической игры

20-е задание: «Поиск выигрышной стратегии»

Уровень сложности — повышенный,

Требуется использование специализированного программного обеспечения — нет,

Максимальный балл — 1,

Примерное время выполнения — 6 минут.

Проверяемые элементы содержания: Умение найти выигрышную стратегию игры

21-е задание: «Дерево игры для выигрышной стратегии»

Уровень сложности — повышенный,

Требуется использование специализированного программного обеспечения — нет,

Максимальный балл — 1,

Примерное время выполнения — 10 минут.

Проверяемые элементы содержания: Умение построить дерево игры по заданному алгоритму и найти выигрышную стратегию

Разбор заданий 19,20,21 ЕГЭ по информатике в Excel.

Задание 19.

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Например, пусть в одной куче 10камней, а в другой 5 камней; такую позицию в игре будем обозначать (10,5). Тогда за один ход можно получить любую из четырёх позиций: (11,5), (20,5), (10,6), (10,10). Для того чтобы делать ход, у каждого игрока есть неограниченное количество камней.

Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 77. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 77 или больше камней.

В начальный момент впервой куче было семь камней, вовторой куче – S камней: 1S69

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.

Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.

Решение.

Поскольку у нас 2 кучикамней, будем использовать 2 ячейки. В ячейку A4 введём 7 (количество камней в первой куче) и поскольку количество камней во второй куче неизвестно, введём в ячейкуB4 Excelпроизвольное число, например 10. Распишем ходы Пети.

Для того чтобы Ваня гарантировано выиграл первым ходом, последний ход его должен быть самым сильным. Для этого количество камней из кучи с максимальным количеством камней умножаем на 2 и прибавляем количество камней из другой кучи. В ячейку E4 вводим формулу

=МАКС(C4:D4)*2 + МИН(C4:D4). Копируем эту формулу в ячейки E5:E7.

т.к. по условию задачи Ваня должен выиграть своим первым ходом, то суммарное количество камней в двух кучах должно быть  77. При этом количество камней во второй куче должно быть минимальным. Будем подбирать количество камней во второй куче, пока не найдем минимальное, при котором суммарное количество камней количество камней у Вани не станет 77.

И

Для наглядности выполним условное форматирование. Выделим ячейки E4:E7. Выбираем Условное форматирование – Правила выделения ячеек – другие правила – значения 77 – форма – заливка – зеленая – ОК — ОК

такое количество камней во второй куче будет равно 18.

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

— Петя не может выиграть за один ход;

— Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания.

Ответ:

Решение.

Введём в ячейку A10количество камней в первой куче — 7, в ячейку B10 – количество камней во второй куче, т.к. количество камней во второй куче неизвестно, введём 10 (число произвольное). Скопируем таблицу, полученную в первом задании, в ячейку C9.

Так как Петя должен сделать свои 4 хода, а затем Ваня свои ходы, скопируем таблицу из первого задания ещё три раза. Распишем все первые ходы Пети. Ходы Вани и второй ход Пети при этом рассчитываются автоматически.

При S=10 Петя выигрывает своим вторым ходом только при одном ходе Вани (7,40), а нам надо, чтобы Петя после своего первого хода при любом ходе Вани выигрывал своим вторым ходом, т.е. нам нужно найти такое S, при котором все вторые ходы Пети в одном из прямоугольников были 77. Кроме того, нам надо будет следить за последним ходом Вани, т.к. может случиться так,что Петя выигрывает своим вторым ходом, но до этого побеждает Ваня. Для этого создадим дополнительный столбец, в который будем записывать сумму камней в двух кучах у Вани и следить, чтобы это значение было 77. В ячейку H10вводим формулу =E10 + F10и копируем её в ячейки H11:H25. Для наглядности выполним условное форматирование.

Меняя значение Sво второй куче, находим решение задачи. Первое значение S=31 ивторое значение S=34

Ответ: 3134

Задание 21.

Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия:

— у Вани естьвыигрышная стратегия,позволяющая ему выиграть первым иливторым ходом при

любой игре Пети;

— у Вани нет стратегии,которая позволит ему гарантированно выиграть первым ходом.

Решение.

Скопируем таблицу из второго задания в ячейку K3 и снова поменяем местами Петя, Ваня, Петя. В ячейку I4 введём количество камней в первой куче, в ячейку J4 – число, например, 10 (количество камней во второй куче). Тогда при первом ходе Пети K4 =I4+1, L4=J4.

Выделим данный фрагмент таблицы жирным. Так как Петя не должен выиграть своим первым ходом, скопируем полученную таблицу ещё 3 раза. Введём формулы в ячейкиK20=I4, L20=J4+1, K36=I4*2, L36=J4, K52=I4, L52=J4*2. Также надо проверить, не выиграет ли Ваня своим первым ходом. Для этого в ячейку M5 введём формулу =M4+N4. Скопируем эту формулу в ячейкиM9, M13,M17, M21, M25, M29, M33, M37, M41, M45, M49. Снова будем проверять, используя условное форматирование. Меняя значение вячейке J4, находим такое минимальное S, при которому Вани естьвыигрышная стратегия,позволяющая ему выиграть первым иливторым ходом прилюбой игре Пети;у Вани нет стратегии,которая позволит ему гарантированно выиграть первым ходом.

ЕГЭ информатика 19-21 задание разбор, теория, как решать.

Теория игр, выигрышная стратегия, 19.(Б) — 1 балл, 20.(П) — 1 балл, 21.(В) — 1 балл

Е19-21.32 когда количество камней в куче становится не менее 129

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается …

Читать далее

Е19-21.31 Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 211.

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока …

Читать далее

Е19-21.30 когда количество камней в куче становится не менее 29

Игра завершается в тот момент, когда количество камней в куче становится не менее 29. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. …

Читать далее

Е19-21.29 когда суммарное количество камней в кучах становится не менее 44

когда суммарное количество камней в кучах становится не менее 44 Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) два камня или увеличить количество камней в куче в …

Читать далее

Е19-21.28 Игра завершается в тот момент, когда количество камней в куче становится не менее 84.

Игра завершается в тот момент, когда количество камней в куче становится не менее 84. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или четыре камня или увеличить количество камней в куче в …

Читать далее

Е19-21.27 добавить в кучу один камень, два камня, увеличить количество камней

добавить в кучу один камень, два камня, увеличить количество камней. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может а) добавить в кучу один камень; б) добавить в кучу два камня; г) увеличить количество камней в куче …

Читать далее

Е19-21.26 добавить в кучу один камень, два камня, три камня; увеличить количество камней

добавить в кучу один камень, два камня, три камня; увеличить количество камней в куче в два раза. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может а) добавить в кучу один камень; б) добавить в кучу два …

Читать далее

Е19-21.25 добавить в кучу два камня, добавить в кучу три камня или увеличить

добавить в кучу два камня, добавить в кучу три камня или увеличить. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу два камня, добавить в кучу три камня или увеличить количество камней в куче …

Читать далее

Е19-21.24 добавить в кучу три камня или увеличить количество камней в куче в два раза

добавить в кучу три камня или увеличить количество камней в куче в два раза. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу три камня или увеличить количество камней в куче в два раза. …

Читать далее

Е19-21.23 когда количество камней в куче становится не менее 25

Игра завершается в тот момент, когда количество камней в куче становится не менее 25. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу два камня или увеличить количество камней в куче в два раза. …

Читать далее

В задание №19_20_21

Тема: Теория игр. Поиск выигрышной стратегии.

Проверяется умение анализировать алгоритм логической игры. Умение найти выигрышную стратегию игры. Умение построить дерево игры по заданному алгоритму и найти выигрышную стратегию.



  • Одна куча — варианты решений



  • Две кучи — варианты решений



  • Три кучи — варианты решений

Немного теории:

☆ Все позиции в простых играх делятся на выигрышные и проигрышные

  • выигрышная позиция – это такая позиция, в которой игрок, делающий первый ход, может гарантированно выиграть при любой игре соперника, если не сделает ошибку; при этом говорят, что у него есть выигрышная стратегия – алгоритм выбора очередного хода, позволяющий ему выиграть
  • если игрок начинает играть в проигрышной позиции, он обязательно проиграет, если ошибку не сделает его соперник; в этом случае говорят, что у него нет выигрышной стратегии; таким образом, общая стратегия игры состоит в том, чтобы своим ходом создать проигрышную позицию для соперника
  • выигрышные и проигрышные позиции можно охарактеризовать так:
    • позиция, из которой все возможные ходы ведут в выигрышные позиции – проигрышная;
    • позиция, из которой хотя бы один из возможных ходов ведет в проигрышную позицию — выигрышная, при этом стратегия игрока состоит в том, чтобы перевести игру в эту проигрышную (для соперника) позицию.

Одна куча:

Задание 19

Два игрока, Петя и Вася, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может:

  1. Добавить в кучу один камень или
  2. Добавить в кучу три камня или
  3. Увеличить количество камней в куче в четыре раза.

Например, имея кучу из 20 камней, за одни ход можно получить кучу из 21, 23 или 80 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче становится не менее 78. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет 78 или больше камней. В начальный момент в куче было S камней: 1 ≤ S ≤ 77.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретится при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.

Известно, что Вася выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.

Решение:

Ответ: 5

Задание 20

Для игры, описанной в задании 19, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причем одновременно выполняются два условия:

  • Петя не может выиграть за один ход;
  • Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания.

Теперь попробуем определить значение S, при которых у Пети будет выигрышная стратегия, причём Петя не сможет выиграть первым ходом, но сможет выиграть своим вторым ходом, независимо от того, как будет ходить Ваня.

Ответ: 16 18

Задание 21

Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия:

  • У Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
  • У Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Ответ: 15

Задание 19 (самостоятельно)

Два игрока, Петя и Вася, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может:

  1. Добавить в кучу один камень или
  2. Добавить в кучу два камня или
  3. Увеличить количество камней в куче в четыре раза.

Например, имея кучу из 20 камней, за одни ход можно получить кучу из 21, 22 или 79 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче становится не менее 85. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет 85 или больше камней. В начальный момент в куче было S камней: 1 ≤ S ≤ 84.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретится при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.

Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.

Задание 20 (самостоятельно)

Для игры, описанной в задании 19, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причем одновременно выполняются два условия:

  • Петя не может выиграть за один ход;
  • Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания.

Задание 21 (самостоятельно)

Для игры, описанной в задании 19, найдите максимальное значение S, при котором одновременно выполняются два условия:

  • У Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
  • У Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Задание 19_20_22(DEMO) пишем программу Phyton

P-01 (демо-2022). Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит

куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 29. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет 29 или больше камней.

В начальный момент в куче было S камней, 1 ≤ S ≤ 28.

Задание 19.

Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.

Задание 20.

Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

− Петя не может выиграть за один ход;

− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания.

Задание 21

Найдите значение S, при котором одновременно выполняются два условия:

– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;

– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

n = 29
def gameResult(s):
    if s>=n:return 0 
    nYes = [gameResult(s+1), gameResult(s*2)] 
    nNo = [i for i in nYes if i<=0] 
    if nNo:res = -max(nNo) + 1
    else:res = -max(nYes)
    return res

# основная программа
results = [(s,gameResult(s)) for s in range(1,n)]
print( '19:', [s for s, r in results if r == -1] )
print( '20:', [s for s, r in results if r == 2] )
print( '21:', [s for s, r in results if r == -2] )

Задание 19_20_22 (Поляков) пишем программу Phyton

Две кучи — варианты решений

Задание 19 (разбираем задание)

Два игрока, Петя и Вася, играют в следующую игру. Перед игроками лежит две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может:

  1. Добавить в одну из куч (по своему выбору) один камень или
  2. Добавить в одну из куч (по своему выбору) удвоенное число камне из другой кучи.

Например, пусть в одной куче 8 камней, а в другой куче 5 камней. Тогда за один ход можем получить четыре позиции: (9, 5); (18, 5); (8, 6); (8, 21).

Для того что бы играть, у игроков есть неограниченное количество камне.

Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 77. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 77 или больше камней.

В начальный момент в первой куче было 9 камней, во второй S камней: 1 ≤ S ≤ 67.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретится при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.

Известно, что Вася выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.

Можно решить с помощью рассуждений:

  • Если S = 67, то добавив в любую кучу один камень (67+1+9=77), или добавить удвоенную соседнюю кучу в любую из куч (9+(67+2*9)=94 или ((9+2*67)+67=210), Петя становится победителем.
  • Если S = 66, добавив удвоенную соседнюю кучу в любую из куч (9+(66+2*9)=93 или ((9+2*66)+66=207), Петя становится победителем.
  • Если S = 65, добавив удвоенную соседнюю кучу в любую из куч (9+(65+2*9)=92 или ((9+2*65)+65=204), Петя становится победителем.
  • Обратим внимание, если удваиваем 9 камней и добавляем во вторую кучу, уменьшение ровно на 1, поэтому ускорим процесс 92-77=15, 65 -15 =50, идем дальше
  • Если S = 50, добавив удвоенную соседнюю кучу в любую из куч (9+(50+2*9)=77 или ((9+2*50)+50=159), Петя становится победителем.
  • У нас остается только один вариант, ускорим процес, усли удваиваем вторую кучу, уменьшение ровно на три, поэтому ускорим процесс 159-77=82, 82/3=27,333, 50-27=23
  • Если S = 23, добавив удвоенную соседнюю кучу в эту из куч ((9+2*23)+23=78), Петя становится победителем. СТОП!!!

Получили – S>=23 – это ВЫИГРЫШНАЯ ПОЗИЦИЯ,

S<23 будет ПРОИГРЫШНОЙ ПОЗИЦИЕЙ ДЛЯ ЛЮБОГО ИГРОКА.

Известно, что Вася выиграл своим первым ходом, после НЕУДАЧНОГО первого хода Пети.

Неудачный ход – это значит Петя увеличил количество камне увеличив одну из куч удвоенным количеством соседней кучи. Получаем S+2*9 = 23 => S=5

Можно проверить программой:

# 19-----------------------------------
def f(x, y, p):
    if x + y >=77 and p == 3: return True
    else:
        if x + y < 77 and p == 3:return False
    return f(x+1, y, p+1) or f(x, y+1, p+1) or f(x+2*y, y, p+1) or f(x, y+2*x, p+1)

# начинаем перебор для 19 задания
print('19 ответ -', end=' ')
for i in range(1,50+1):
    if f(9, i, 1):
        print(i)
        break

Ответ: 5

Задание 20 (разбираем задание)

Для игры, описанной в задании 19, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причем одновременно выполняются два условия:

  • Петя не может выиграть за один ход;
  • Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания.

Ответ: 7 22

Задание 21 (разбираем задание)

Найдите значение S, при котором одновременно выполняются два условия:

– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;

– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Ответ: 21

Три кучи — варианты решений

Задание 19_20_21 (разбираем задание)

(№ 4725) (И. Осипов) Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат три кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) три камня или увеличить количество камней в куче в два раза. Например, пусть в первой куче 10 камней, во второй 7, а в третьей 4 камня; такую позицию в игре будем обозначать (10, 7, 4). Тогда за один ход можно получить любую из шести позиций: (13, 7, 4), (20, 7, 4), (10, 10, 4), (10, 14, 4), (10, 7, 7), (10, 7, 8). Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 71. Победителем считается игрок, сделавший последний ход, т. е. первым получивший такую позицию, что в кучах всего будет 71 или больше камней. В начальный момент в первой куче было семь камней, во второй куче пять камней, в третьей куче – S камней; 1 ≤ S ≤ 58.
Ответьте на следующие вопросы:
  Вопрос 1.При некотором значении S Ваня одержал победу свои первым ходом после неудачного хода Пети. Укажите минимальное значение S, при котором это возможно.
  Вопрос 2. Найдите минимальное и максимальное значения S, при которых Петя выигрывает вторым ходом при любом ходе Вани.
  Вопрос 3. Найдите значение S, при котором одновременно выполняются два условия: а) у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети; б) у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

# --19----------------
def f(x,y,z,p):
    if x + y + z >=71 and p == 3:return True
    else:
        if x + y + z < 71 and p == 3:return False
    return (f(x+3, y, z, p+1) or f(x*2, y, z, p+1) or f(x, y+3, z, p+1) or
            f(x, y*2, z, p+1) or f(x, y, z+3, p+1) or f(x, y, z*2, p+1))
# ------------------------
print('19 ответ:', end=' ')
for i in range(1,58+1):
    if f(7, 5, i, 1):
        print(i)
        break

Ответ: 15

# --20----------------
def f(x,y,z,p):
    if x + y + z >=71 and p == 4:return True
    else:
        if x + y + z < 71 and p == 4:return False
        else:
            if x + y + z>=71:return False
    if p % 2 == 1:
        return (f(x+3, y, z, p+1) or f(x*2, y, z, p+1) or f(x, y+3, z, p+1) or
        f(x, y*2, z, p+1) or f(x, y, z+3, p+1) or f(x, y, z*2, p+1))
    else:
        return (f(x+3, y, z, p+1) and f(x*2, y, z, p+1) and f(x, y+3, z, p+1)
        and f(x, y*2, z, p+1) and f(x, y, z+3, p+1) and f(x, y, z*2, p+1))
# ------------------------
print('20 ответ:', end=' ')
for i in range(1,58+1):
    if f(7, 5, i, 1):
        print(i, end=' ')

Ответ: 14 27

# --21----------------
print()
def f(x,y,z,p):
    if x + y + z >=71 and (p == 3 or p == 5):return True
    else:
        if x + y + z < 71 and p == 5:return False
        else:
            if x + y + z>=71:return False
    if p % 2 == 0:
        return (f(x+3, y, z, p+1) or f(x*2, y, z, p+1) or f(x, y+3, z, p+1) or
        f(x, y*2, z, p+1) or f(x, y, z+3, p+1) or f(x, y, z*2, p+1))
    else:
        return (f(x+3, y, z, p+1) and f(x*2, y, z, p+1) and f(x, y+3, z, p+1)
        and f(x, y*2, z, p+1) and f(x, y, z+3, p+1) and f(x, y, z*2, p+1))
# ------------------------
print('21 ответ:', end=' ')
for i in range(1,58+1):
    if f(7, 5, i, 1):
        print(i, end=' ')
        break

Ответ: 24

Продолжаем изучение демонстрационного варианта ЕГЭ по информатике 2022.

В этой статье разберём с 16-ого по 21 задание.

Источник задач: https://fipi.ru/ege/demoversii-specifikacii-kodifikatory#!/tab/151883967-5.

Желаю победы на ЕГЭ по информатике 2022!

Разбор демоверсии ЕГЭ по информатике 2022 (1-5 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (6-10 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (11-15 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (22-27 Задание)

Задание 16

Алгоритм вычисления значения функции F(n), где n – натуральное число,
задан следующими соотношениями:

F(n) = 1 при n = 1;
F(n) = n + F(n − 1), если n чётно,
F(n) = 2 × F(n − 2), если n > 1 и при этом n нечётно.

Чему равно значение функции F(26)?

Решение:

Запрограммируем эту задачу на Python‘е.

def F(n):
    if n==1: return 1
    if n%2==0: return n+F(n-1)
    if n>1 and n%2!=0: return 2*F(n-2)

print(F(26))

Формируем функцию F, в точности, как нам предоставили описание. И запускаем функцию с указанным параметром 26.

Проверить чётное ли число n или нет, можно, посмотрев остаток от деления n на 2.

Ответ: 4122

Смотреть 16 Задание на YouTube

Задание 17

В файле содержится последовательность целых чисел. Элементы
последовательности могут принимать целые значения от –10 000 до 10 000
включительно. Определите и запишите в ответе сначала количество пар
элементов последовательности, в которых хотя бы одно число делится на 3,
затем максимальную из сумм элементов таких пар. В данной задаче под
парой подразумевается два идущих подряд элемента последовательности.
Например, для последовательности из пяти элементов:
6; 2; 9; –3; 6 – ответ: 4 11

Решение:

Решим задачу на языке Python. Файл должен быть в той же папке, в которой сохранили программу (или нужно прописать полный путь до файла).

f=open('17.txt')

count=0
sm=-20001

n1=int(f.readline())

for s in f.readlines():
    n2=int(s)

    if n1%3==0 or n2%3==0:
        count=count+1
        sm=max(n1+n2, sm)
    
    n1=n2

print(count)
print(sm)

В начале подключаем файл. Заводим переменные count, sm, где будут храниться количество пар и наибольшая сумма.

Считываем в n1 из файла первое число для нашей пары. Затем, формируем цикл for, где в переменную s считывается очередная строчка из файла, начиная со второй (ведь первая уже считалась в n1). Т.е. n1 — первое число из пары, n2 — второе число из пары.

Проверяем с помощью условия, делится ли хотя бы одно число из пары на 3. Если да, то прибавляем единицу к счётчику count. Так же, если выполняется условие, в переменную sm записывается максимальное значение между старым значением переменной sm и суммой очередной пары. Т.е. в переменной sm будет записана максимальная сумма элементов всех пар, которые удовлетворяют условию задачи.

В конце цикла кладём значение n2 в переменную n1, и всё повторяется.

Ответ:

Смотреть 17 Задание на YouTube

Задание 18

Квадрат разлинован на N × N клеток (1 < N < 30). Исполнитель Робот может
перемещаться по клеткам, выполняя за одно перемещение одну из двух
команд: вправо или вниз. По команде вправо Робот перемещается
в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю.
Квадрат ограничен внешними стенами. Между соседними клетками квадрата
также могут быть внутренние стены. Сквозь стену Робот пройти не может.
Перед каждым запуском Робота в каждой клетке квадрата лежит монета
достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой;
это также относится к начальной и конечной клеткам маршрута Робота.
Определите максимальную и минимальную денежные суммы, которые
может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа – сначала максимальную сумму, затем
минимальную.

Исходные данные представляют собой электронную таблицу размером
N × N, каждая ячейка которой соответствует клетке квадрата. Внутренние
и внешние стены обозначены утолщенными линиями.

Пример входных данных:

1 8 8 4
10 1 1 3
1 3 12 2
2 3 5 6

Для указанных входных данных ответом должна быть пара чисел

Решение:

Открываем файл в программе Excel.

Выделим все ячейки с числами, нажмём «вырезать», используя контекстное меню. Вставим данные на 1 столбец вправо. Это делаем потому, что будем использовать для решения формулу, которая будет обращаться к ячейке слева.

Мысленно представим пространство на 1 строчку ниже, чем область, где находятся числа. Это пространство будет таким же по размерам, как и область с числами. В этом пространстве и будет наше решение.

ЕГЭ по информатике демоверсия 2022 - задание 18 (Решение)

Отметим особым цветом те ячейки, которые «спрятаны» от движения Робота стенками.

ЕГЭ по информатике демоверсия 2022 - задание 18 (Решение со стенками)

Для этих ячеек будем составлять другие формулы, в отличии от обычных ячеек.

Цвет ячейки можно поменять, нажав на кнопку «Цвет заливки» на главной вкладке программы.

Т.к. Робот направляется из левой верхней ячейки, то мы сначала и напишем формулу для этой ячейки. Пишем для ячейки B22:

=МАКС(B21;A22)+B1

Робот в любую ячейку может прийти либо сверху, либо слева. Для подсчёта максимального количества монет, мы должны выбрать максимальное предыдущее значение. Это и делаем формула. Плюс Робот должен взять монеты с текущей клетки.

Распространим формулу на всё пространство, не трогая закрашенные клетки.

ЕГЭ по информатике демоверсия 2022 - задание 18 (Распространяем формулу)

Получается такая картина:

ЕГЭ по информатике демоверсия 2022 - задание 18 (Распространяем формулу 2)

В ячейки для первой закрашенной области, Робот может попасть только сверху! Поэтому пишем формулу для ячейки H25:

=H24+H4

Распространяем формулу по всему закрашенному столбцу.

В ячейки для второй закрашенной области, Робот может попасть только слева! Поэтому пишем формулу для ячейки М39:

=L39+M18

Распространяем формулу по всей закрашенной строчке.

В правом нижнем углу нашего рабочего пространства получается максимальное количество монет, которое может собрать Робот. В ячейке U41 получается число 721.

Чтобы получить минимальную возможную сумму, в главной формуле функцию МАКС нужно заменить на МИН!

Удобно воспользоваться автоматической заменой через Ctrl+F.

ЕГЭ по информатике демоверсия 2022 - задание 18 (автоматическая замена)

Минимальная сумма равна 640.

Ответ:

Смотреть 18 Задание на YouTube

Задание 19

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит
куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход
игрок может добавить в кучу один камень или увеличить количество камней
в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть
неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче становится
не менее 29. Победителем считается игрок, сделавший последний ход,
т.е. первым получивший кучу, в которой будет 29 или больше камней.

В начальный момент в куче было S камней, 1 ≤ S ≤ 28.

Будем говорить, что игрок имеет выигрышную стратегию, если он может
выиграть при любых ходах противника. Описать стратегию игрока – значит
описать, какой ход он должен сделать в любой ситуации, которая ему может
встретиться при различной игре противника. В описание выигрышной
стратегии не следует включать ходы играющего по этой стратегии игрока,
не являющиеся для него безусловно выигрышными, т.е. не являющиеся
выигрышными независимо от игры противника.

Укажите такое значение S, при котором Петя не может выиграть за один ход,
но при любом ходе Пети Ваня может выиграть своим первым ходом.

Решение:

Решим задачу с помощью шаблона на языке программирования Python. Если хотите ознакомится с аналитическим решением задач на теорию игр, можете посмотреть мои статьи по 19 Заданию, 20 Заданию, 21 Заданию. Но с помощью шаблонов на экзамене решать быстрее и легче.

Введём параметр p, который будет олицетворять позицию игры (ход).

Начальная позиция Ход Пети Ход Вани Ход Пети Ход Вани Ход Пети
p 1 2 3 4 5 6
def F(x, p):
    if x>=29 and p==3: return True
    if x<29 and p==3: return False
    if x>=29: return False

    if p%2==1:
        return F(x+1, p+1) and F(x*2, p+1)
    else:
         return F(x+1, p+1) or F(x*2, p+1)

for s in range(1, 29):
    if F(s, 1):
        print(s)

Заводим функцию F. Т.к. у нас одна куча, то она принимает параметры: x — количество камней в куче, p-позиция игры.

Дальше описываем победу. Если x>=29 и позиция равна 3 (1 Ход Вани), то возвращаем True, что означает победу.

Если, позиция уже равна 3, но камней меньше, чем должно быть для победы, то возвращаем False (проигрыш).

Третье условие. Если кто-то выиграл, но на первых двух условиях мы не вышли из функции, то, значит, выиграл не тот, кто нам нужен, следовательно, возвращаем Fasle.

Если мы не вышли на первых трёх условиях, то, значит, продолжаем прокручивать ходы, рекурсивно запускаем функцию F.

Для нечётных p (это ходы Вани), возвращаем разные ходы через and, т.к. он должен побеждать в любом случае. При этом увеличиваем на 1 значение p.

Для чётных p (это ходы Пети), возвращаем ходы через or.

В конце перебираем все возможные значения для s через цикл for, ищём те значения, которые подходят по условию задачи.

Ответ: 14

Смотреть 19-21 Задание на YouTube

Задание 20

Для игры, описанной в задании 19, найдите два таких значения S, при
которых у Пети есть выигрышная стратегия, причём одновременно
выполняются два условия:

− Петя не может выиграть за один ход;

− Петя может выиграть своим вторым ходом независимо от того, как
будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания.

Решение:

Задача точно такая же, как и в 19 задании, только теперь обязательно должен побежать Петя на своём втором ходу (p=4), при любой игре Вани.

Пишем тот же шаблон, немного отредактировав его.

def F(x, p):
    if x>=29 and p==4: return True
    if x<29 and p==4: return False
    if x>=29: return False

    if p%2==0:
        return F(x+1, p+1) and F(x*2, p+1)
    else:
         return F(x+1, p+1) or F(x*2, p+1)

for s in range(1, 29):
    if F(s, 1):
        print(s)

Получается 7 и 13.

Ответ:

Смотреть 19-21 Задание на YouTube

Задание 21

Для игры, описанной в задании 19, найдите значение S, при котором
одновременно выполняются два условия:

− у Вани есть выигрышная стратегия, позволяющая ему выиграть
первым или вторым ходом при любой игре Пети;

− у Вани нет стратегии, которая позволит ему гарантированно выиграть
первым ходом.

Если найдено несколько значений S, в ответе запишите минимальное из них.

Решение:

Опять используем прошлый шаблон, но немного модернизируем.

def F(x, p):
    if x>=29 and (p==3 or p==5): return True
    if x<29 and p==5: return False
    if x>=29: return False

    if p%2==1:
        return F(x+1, p+1) and F(x*2, p+1)
    else:
         return F(x+1, p+1) or F(x*2, p+1)


def F1(x, p):
    if x>=29 and p==3: return True
    if x<29 and p==3: return False
    if x>=29: return False

    if p%2==1:
        return F1(x+1, p+1) and F1(x*2, p+1)
    else:
         return F1(x+1, p+1) or F1(x*2, p+1)

for s in range(1, 29):
    if F(s, 1):
        print(s)

print()

for s in range(1, 29):
    if F1(s, 1):
        print(s)

Здесь Ваня должен выигрывать либо на первом своём ходе (p=3), либо на втором своём ходе (p=5).

Т.к. Ваня не должен гарантированно выиграть своим первым ходом, то мы создаём ещё одну функцию F1, похожую на основную функцию F, которая вычисляет, когда Ваня именно гарантированно выигрывает на своём первом ходе (p=3). И, затем, мы из тех чисел, которые получились в первой функции F, исключаем числа, которые получились во второй функции F1.

В первой функции получилось 12,14, а во второй 14. Получается ответ 12.

Ответ: 12

Смотреть 19-21 Задание на YouTube

Разбор демоверсии ЕГЭ по информатике 2022 (1-5 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (6-10 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (11-15 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (22-27 Задание)

У меня в 18 задании 720 и 642 получилось… Проверьте, пожалуйста, это я неправильно решаю, или у Вас опечатка

Алмаз, в ответе к Демоверсии так же, как у меня.

Понравилась статья? Поделить с друзьями:
  • Задание 19 21 егэ информатика 2021 в excel одна куча
  • Задание 1 расчет количества банок краски excel
  • Задаем переменную в word
  • Задаем диапазон в excel
  • Загрузки для компьютера word