Задания
Версия для печати и копирования в MS Word
Тип 21 № 81805
i

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

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

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

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

def f(x, h):

if (h == 3 or h == 5) and x <= 30:

return 1

elif h == 5 and x > 30:

return 0

elif x <= 30 and h < 5:

return 0

else:

if h % 2 == 0:

return f(x - 3, h + 1) or f(x - 5, h + 1) or f(x // 4, h + 1)

else:

return f(x - 3, h + 1) and f(x - 5, h + 1) and f(x // 4, h + 1)

def f1(x, h):

if h == 3 and x <= 30:

return 1

elif h == 3 and x > 30:

return 0

elif x <=30 and h < 3:

return 0

else:

if h % 2 == 0:

return f1(x - 3, h + 1) or f1(x - 5, h + 1) or f1(x // 4, h + 1)

else:

return f1(x - 3, h + 1) and f1(x - 5, h + 1) and f1(x // 4, h + 1)

for x in range(200):

if f(x, 1) == 1:

print(x)

print("====")

for x in range(200):

if f1(x, 1) == 1:

print(x) # Ис­клю­чим эти зна­че­ния из спис­ка выше

 

Ответ: 132.

 

При­ведём ана­ли­ти­че­ское ре­ше­ние Алек­сандра Коз­ло­ва.

Ре­ше­ние задач с ка­меш­ка­ми ме­то­дом «Лун­ная по­ход­ка»

За­да­ча 21

Про­дол­жа­ем пе­ре­бор по­зи­ций. Ана­лиз по­зи­ции для Вани:

Мы ищем ми­ни­маль­ное зна­че­ние S, при ко­то­ром Ваня имеет вы­иг­рыш­ную стра­те­гию и не может га­ран­ти­ро­ван­но вы­иг­рать пер­вым ходом.

Про­ве­ря­ем по­зи­цию 132:

Если Петя схо­дит 132/4 = 33  — Ваня вы­иг­ры­ва­ет, со­глас­но вы­во­да 1 за­да­чи 19.

132−3=129  — Ваня также вы­иг­ры­ва­ет ис­хо­дя из вы­во­да 3 за­да­чи 20

132−5=127  — Ваня вы­иг­ры­ва­ет ис­хо­дя из вы­во­да 3 за­да­чи 20

Таким об­ра­зом, все воз­мож­ные ходы Пети ведут к по­бе­де Вани.

Ответ на за­да­чу 21: Ми­ни­маль­ное зна­че­ние S=132.

 

При­ведём ре­ше­ние Алек­сандра Коз­ло­ва на языке Python.

from functools import *

def m(h):

return h//4,h-3,h-5

@lru_cache(None)

def g(h):

if h<=30:return 'w'

if any(g(i)=='w' for i in m(h)):return 'p1'

if all(g(i)=='p1' for i in m(h)):return 'v1'

if any(g(i)=='v1' for i in m(h)):return 'p2'

if all(g(i)=='p1' or g(i)=='p2' for i in m(h)):return 'v2'

for i in range(120,140):

if g(i)!= None and g(i)!='w':

print(i,g(i))


Аналоги к заданию № 81487: 81805 Все

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2026 по ин­фор­ма­ти­ке
1
Тип 20 № 81804
i

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

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

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

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


Аналоги к заданию № 81486: 81804 Все