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

Два иг­ро­ка, Петя и Ваня, иг­ра­ют в сле­ду­ю­щую игру. Перед иг­ро­ка­ми лежат две кучи кам­ней. Иг­ро­ки ходят по оче­ре­ди, пер­вый ход де­ла­ет Петя. За один ход игрок может убрать из одной из куч один ка­мень или умень­шить ко­ли­че­ство кам­ней в куче в два раза (если ко­ли­че­ство кам­ней в куче нечётно, остаётся на 1 ка­мень мень­ше, чем уби­ра­ет­ся). На­при­мер, пусть в одной куче 6, а в дру­гой  — 9 кам­ней; такую по­зи­цию мы будем обо­зна­чать (6, 9). За один ход из по­зи­ции (6, 9) можно по­лу­чить любую из четырёх по­зи­ций: (5, 9), (3, 9), (6, 8), (6, 4).

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

В на­чаль­ный мо­мент в пер­вой куче было 10 кам­ней, во вто­рой куче  — S кам­ней, S > 10.

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

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

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

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

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

Ре­ше­ние.

Такое зна­че­ние S: 25. После пер­во­го хода Пети воз­мож­ны по­зи­ции (9, 25), (5, 25), (10, 24), (10, 12). В по­зи­ци­ях (5, 25) и (10, 12) Ваня может вы­иг­рать пер­вым ходом, умень­шив вдвое ко­ли­че­ство кам­ней во вто­рой куче. Из по­зи­ций (9, 25) и (10, 24) Ваня может по­лу­чить по­зи­цию (9, 24), в этом слу­чае после хода Пети воз­ник­нет одна из по­зи­ций (8, 24), (4, 24), (9, 23), (9, 12). В любой из пе­ре­чис­лен­ных по­зи­ций Ваня может вы­иг­рать, умень­шив вдвое ко­ли­че­ство кам­ней в боль­шей куче.

Таким об­ра­зом, ответ  — 25.

 

Ответ: 25.

 

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

 

Ис­клю­чим стра­те­гию Вани, при ко­то­рой он га­ран­ти­ро­ва­но вы­иг­ра­ет пер­вым ходом:

def f(x, y, h):

if (h == 3 or h == 5) and x + y <= 20:

return 1

elif h == 5 and x + y > 20:

return 0

elif x + y <= 20 and h < 5:

return 0

else:

if h % 2 == 0:

return f(x - 1, y, h + 1) or f(x, y - 1, h + 1) or f(x // 2, y, h + 1) or f(x, y // 2, h + 1) # стра­те­гия по­бе­ди­те­ля

else:

return f(x - 1, y, h + 1) and f(x, y - 1, h + 1) and f(x // 2, y, h + 1) and f(x, y // 2, h + 1) # стра­те­гия про­иг­рав­ше­го(любой ход)

 

def f1(x, y, h):

if h == 3 and x + y <= 20:

return 1

elif h == 3 and x + y > 20:

return 0

elif x + y <= 20 and h < 3:

return 0

else:

if h % 2 == 0:

return f1(x - 1, y, h + 1) or f1(x, y - 1, h + 1) or f1(x // 2, y, h + 1) or f1(x, y // 2, h + 1) # стра­те­гия по­бе­ди­те­ля

else:

return f1(x - 1, y, h + 1) and f1(x, y - 1, h + 1) and f1(x // 2, y, h + 1) and f1(x, y // 2, h + 1) # стра­те­гия про­иг­рав­ше­го(любой ход)

 

for x in range(10, 100):

if f(x, 10, 1) == 1:

print(x)

print("====")

for x in range(1, 100):

if f1(x, 10, 1) == 1:

print(x)

 

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

def game(x, y, h, h2):

if h > h2:

return 0

if x + y <= 20:

if h == 4 or h == 2:

return 1

else:

return 0

if h % 2 == 1:

return game(x - 1, y, h + 1, h2) or game(x, y - 1, h + 1, h2) or game(x // 2, y, h + 1, h2) or game(x, y // 2, h + 1, h2) #Стра­те­гия по­бе­ди­те­ля

else:

return game(x - 1, y, h + 1, h2) and game(x, y - 1, h + 1, h2) and game(x // 2, y, h + 1, h2) and game(x, y // 2, h + 1, h2) #Стра­те­гия про­иг­рав­ше­го, в слу­чае игры в «под­дав­ки» ста­вим or вме­сто and

for x in range(11,1000):

if game(x, 10, 0, 4) == 1 and game(x, 10, 0, 2) == 0: # вто­рая часть усло­вия - тре­бо­ва­ние за­да­чи, о не­воз­мож­но­сти фор­си­ро­ван­но­го вы­иг­ры­ша Вани при его пер­вом ходе

print(x)


Аналоги к заданию № 27773: 27776 27779 Все

Раздел кодификатора ФИПИ: 1.5.2 Це­поч­ки, де­ре­вья, спис­ки, графы, мат­ри­цы, псев­до­слу­чай­ные по­сле­до­ва­тель­но­сти
1
Тип 19 № 27771
i

Два иг­ро­ка, Петя и Ваня, иг­ра­ют в сле­ду­ю­щую игру. Перед иг­ро­ка­ми лежат две кучи кам­ней. Иг­ро­ки ходят по оче­ре­ди, пер­вый ход де­ла­ет Петя. За один ход игрок может убрать из одной из куч один ка­мень или умень­шить ко­ли­че­ство кам­ней в куче в два раза (если ко­ли­че­ство кам­ней в куче нечётно, остаётся на 1 ка­мень мень­ше, чем уби­ра­ет­ся). На­при­мер, пусть в одной куче 6, а в дру­гой 9 кам­ней; такую по­зи­цию мы будем обо­зна­чать (6, 9). За один ход из по­зи­ции (6, 9) можно по­лу­чить любую из четырёх по­зи­ций: (5, 9), (3, 9), (6, 8), (6, 4).

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

В на­чаль­ный мо­мент в пер­вой куче было 10 кам­ней, во вто­рой куче  — S кам­ней, S > 10.

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

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


Аналоги к заданию № 27771: 27774 27777 Все


2
Тип 20 № 27772
i

Два иг­ро­ка, Петя и Ваня, иг­ра­ют в сле­ду­ю­щую игру. Перед иг­ро­ка­ми лежат две кучи кам­ней. Иг­ро­ки ходят по оче­ре­ди, пер­вый ход де­ла­ет Петя. За один ход игрок может убрать из одной из куч один ка­мень или умень­шить ко­ли­че­ство кам­ней в куче в два раза (если ко­ли­че­ство кам­ней в куче нечётно, остаётся на 1 ка­мень мень­ше, чем уби­ра­ет­ся). На­при­мер, пусть в одной куче 6, а в дру­гой  — 9 кам­ней; такую по­зи­цию мы будем обо­зна­чать (6, 9). За один ход из по­зи­ции (6, 9) можно по­лу­чить любую из четырёх по­зи­ций: (5, 9), (3, 9), (6, 8), (6, 4).

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

В на­чаль­ный мо­мент в пер­вой куче было 10 кам­ней, во вто­рой куче  — S кам­ней, S > 10.

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

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

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

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

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


Аналоги к заданию № 27772: 27775 27778 Все