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

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

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

 

Ответ:

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

Ре­ше­ние.

Пер­вое такое зна­че­ние S  — 57. Своим пер­вым ходом Петя может по­лу­чить по­зи­ции 58 или 76 (так как число де­лит­ся на 3). В слу­чае по­зи­ции 76 Ваня вы­иг­ры­ва­ет своим пер­вым ходом (так как 76 де­лит­ся на 2). Петя де­ла­ет по­зи­цию 58, Ваня может по­лу­чить по­зи­ции 59 или 87. В слу­чае по­зи­ции 59 Петя удва­и­ва­ет ко­ли­че­ство кам­ней, в по­зи­ции 87 до­бав­ля­ет треть кам­ней в куче и вы­иг­ры­ва­ет своим пер­вым ходом.

 

Вто­рое такое зна­че­ние S  — 62. Своим пер­вым ходом Петя может по­лу­чить по­зи­ции 63 или 93 (так как число де­лит­ся на 2). В слу­чае по­зи­ции 93 Ваня вы­иг­ры­ва­ет своим пер­вым ходом (так как 93 де­лит­ся на 3). Петя де­ла­ет по­зи­цию 63, Ваня может по­лу­чить по­зи­ции 64 или 84. В слу­чае по­зи­ции 64 Петя до­бав­ля­ет по­ло­ви­ну ко­ли­че­ства кам­ней в куче, в по­зи­ции 84 до­бав­ля­ет по­ло­ви­ну кам­ней в куче и вы­иг­ры­ва­ет своим пер­вым ходом.

 

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

def f(x, h):

if x >= 96:

return h % 2 == 0

if h == 0:

return 0

c = [f(x + 1, h - 1)]

if x % 2 == 0:

c += [f(x *3 // 2, h - 1)]

if x % 3 == 0:

c += [f(x *4 // 3, h - 1)]

if x % 2 != 0 and x % 3 != 0:

c += [f(x * 2, h - 1)]

return any (c) if h % 2 != 0 else all(c)

count = 0

for x in range(96, 1, -1):

if f(x, 3) == 1 and f(x,1) == 0:

count += 1

print("За­да­ча 20: ", x)

if count == 2:

break

 

При­ведём ре­ше­ние Сер­гея Гу­са­ро­ва на языке Python.

def f(s,p,k):

if p > k:

return False

if s >= 96 and p%2 == 0:

return False

if s >= 96 and p%2 == 1:

return True

if s < 96 and p%2 == 1:

if s%6 == 0:

return f(s + s//2, p+1,k) and f(s + s//3,p+1,k) and f(s+1,p+1,k)

elif s%2 == 0:

return f(s + s//2, p+1,k) and f(s+1,p+1,k)

elif s%3 == 0:

return f(s + s//3,p+1,k) and f(s+1,p+1,k)

else:

return f(s*2, p+1,k) and f(s+1,p+1,k)

if s < 96 and p%2 == 0:

if s%6 == 0:

return f(s + s//2, p+1,k) or f(s + s//3,p+1,k) or f(s+1,p+1,k)

elif s%2 == 0:

return f(s + s//2, p+1,k) or f(s+1,p+1,k)

elif s%3 == 0:

return f(s + s//3,p+1,k) or f(s+1,p+1,k)

else:

return f(s*2, p+1,k) or f(s+1,p+1,k)

d = []

d2 = []

for s in range(1,95):

if f(s,0,1):

d.append(s)

for s in range(1,95):

if f(s,0,3) and s not in d:

d2.append(s)

print(*d2[-2:])

 

Решим за­да­ние с по­мо­щью элек­трон­ных таб­лиц.

Ско­пи­ру­ем ре­ше­ние за­да­чи 19 че­ты­ре раза на­чи­ная с ячей­ки H3. Там, где было на­чаль­ное ко­ли­че­ство кам­ней в куче, будет ход Пети, а где был ход Пети, будет ход Вани. Ме­ня­ем зна­че­ния в ячей­ках:

В ячей­ку H3  — ход =G3+1.

В ячей­ку H19  — ход =ЕСЛИ(ОСТАТ(G3;2)=0;G3+G3*0,5;-1000).

В ячей­ку H35  — ход =ЕСЛИ(ОСТАТ(G3;3)=0;G3+G3*1/3;-1000).

В ячей­ку H15  — ход =ЕСЛИ(И(ОСТАТ(G3;2)<>0;ОСТАТ(G3;3)<>0);G3*2;-1000).

Меняя зна­че­ние в ячей­ке G3, до­би­ва­ем­ся та­ко­го ре­зуль­та­та, когда у Пети будут зе­ле­ные ячей­ки в стро­ках, со­от­вет­ству­ю­щих ходам Вани.

По­лу­чим сле­ду­ю­щую таб­ли­цу и под­хо­дя­щие зна­че­ния 57&62.

Ре­ше­ние.xlsx

 

Ответ: 57&62.


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

1
Тип 19 № 63035
i

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

—  до­ба­вить в кучу один ка­мень;

—  если ко­ли­че­ство кам­ней в куче чётно, до­ба­вить по­ло­ви­ну име­ю­ще­го­ся ко­ли­че­ства;

—  если ко­ли­че­ство кам­ней в куче крат­но трём, до­ба­вить треть име­ю­ще­го­ся ко­ли­че­ства;

—  если ко­ли­че­ство кам­ней в куче не крат­но ни двум, ни трём, удво­ить кучу.

На­при­мер, если в куче 5 кам­ней, то за один ход можно по­лу­чить 6 или 10 кам­ней, а если в куче 6 кам­ней, то за один ход можно по­лу­чить 7, или 8, или 9 кам­ней.

Игра за­вер­ша­ет­ся, когда ко­ли­че­ство кам­ней в куче до­сти­га­ет 96.

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

В на­ча­ле игры в куче было S кам­ней, 1 ≤ S ≤ 95.

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


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


2
Тип 21 № 63037
i

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


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