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

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

На­при­мер, если в на­ча­ле игры в куче 4 камня, Петя может пер­вым ходом по­лу­чить кучу из 5 или из 8 кам­ней. До­ба­вить два камня Петя не может, так как в этом слу­чае в куче ста­нет 6 кам­ней, а 6 де­лит­ся на 3.

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

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

В на­чаль­ный мо­мент в куче было S кам­ней, 1 ≤ S ≤ 101, S не де­лит­ся на 3.

Будем го­во­рить, что игрок имеет вы­иг­рыш­ную стра­те­гию, если он может вы­иг­рать при любых ходах про­тив­ни­ка.

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

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

Ре­ше­ние.

Такое зна­че­ние S  — 50. Своим пер­вым ходом Петя может по­лу­чить по­зи­ции 52 и 100 (51 не под­хо­дит, так как де­лит­ся на 3). Во всех слу­ча­ях Ваня уве­ли­чи­ва­ет ко­ли­че­ство кам­ней в куче в два раза и вы­иг­ры­ва­ет своим пер­вым ходом.

 

Ответ: 50.

 

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

def игра(ход,лимит,куча):

# (Номер хода, огра­ни­че­ние на число ходов, ко­ли­че­ство кам­ней)

# ре­зуль­та­ты: 1 - вы­иг­рыш 1-го иг­ро­ка, 2 - вто­ро­го, 0 - по­бе­ди­те­ля нет

игрок = 2-ход%2 # не­чет­ные ходы - игрок 1, чет­ные - игрок 2

враг = 3-игрок # про­тив­ник те­ку­ще­го иг­ро­ка

if куча >= 103: return враг # про­тив­ник толь­ко что сде­лал вы­иг­рыш­ный ход

if ход > лимит: return 0 # пре­вы­ше­но число ходов

по­зи­ции1 = [куча+1,куча+2,куча*2] # ходы: +1, +2, *2

по­зи­ции = [x for x in по­зи­ции1 if x%3 != 0] # ходы, когда ре­зуль­тат не де­лит­ся на 3

ре­зуль­та­ты = [игра(ход+1,лимит,поз) for поз in по­зи­ции] # ре­зуль­та­ты ходов

if all([рез==враг for рез in ре­зуль­та­ты]): return враг # все ходы за­кан­чи­ва­ют­ся вы­иг­ры­шем врага

if any ([рез==игрок for рез in ре­зуль­та­ты]): return игрок # у иг­ро­ка есть вы­иг­рыш­ный ход

return 0 # вы­иг­рыш­ных ходов нет, но и не все ходы про­иг­рыш­ные

print('№ 19:',*[s for s in range(1,102) if s%3!=0 and игра(1,2,s)==2])

print('№ 20:',*[s for s in range(1,102) if s%3!=0 and игра(1,1,s)==0 and игра(1,3,s)==1])

print('№ 21:',*[s for s in range(1,102) if s%3!=0 and игра(1,2,s)==0 and игра(1,4,s)==2])


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

1
Тип 20 № 48441
i

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

На­при­мер, если в на­ча­ле игры в куче 4 камня, Петя может пер­вым ходом по­лу­чить кучу из 5 или из 8 кам­ней. До­ба­вить два камня Петя не может, так как в этом слу­чае в куче ста­нет 6 кам­ней, а 6 де­лит­ся на 3.

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

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

В на­чаль­ный мо­мент в куче было S кам­ней, 1 мень­ше или равно S мень­ше или равно 101, S не де­лит­ся на 3.

Будем го­во­рить, что игрок имеет вы­иг­рыш­ную стра­те­гию, если он может вы­иг­рать при любых ходах про­тив­ни­ка.

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

В от­ве­те за­пи­ши­те най­ден­ные зна­че­ния в по­ряд­ке воз­рас­та­ния: сна­ча­ла мень­шее, затем боль­шее.


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


2
Тип 21 № 48442
i

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

На­при­мер, если в на­ча­ле игры в куче 4 камня, Петя может пер­вым ходом по­лу­чить кучу из 5 или из 8 кам­ней. До­ба­вить два камня Петя не может, так как в этом слу­чае в куче ста­нет 6 кам­ней, а 6 де­лит­ся на 3.

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

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

В на­чаль­ный мо­мент в куче было S кам­ней, 1 ≤ S ≤ 101, S не де­лит­ся на 3.

Будем го­во­рить, что игрок имеет вы­иг­рыш­ную стра­те­гию, если он может вы­иг­рать при любых ходах про­тив­ни­ка.

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


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