19. Выигрышная стратегия: часть 1: все задания
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного хода Пети. Укажите минимальное значение $S$, при котором такая ситуация возможна.
Первый способ — математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $3$: $(11;S)\rightarrow(11;3S)\rightarrow(11;9S)$.
Для победы Вани:
$11+9S\geq154$,
$9S\geq143$,
$S\geq15{,}88\ldots$
Минимальное целое значение $S=16$.
Проверка: после хода Пети $(11;48)$ сумма равна $59<154$, а после хода Вани $(11;144)$ сумма равна $155\geq154$.
Второй способ — решение с помощью Python
def moves(a, b):
return [(a + 4, b), (a, b + 4),
(a * 3, b), (a, b * 3)]
for S in range(1, 143):
if any(
a + b < 154 and
any(x + y >= 154 for x, y in moves(a, b))
for a, b in moves(11, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $16$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного хода Пети. Укажите минимальное значение $S$, при котором такая ситуация возможна.
Первый способ – математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $3$:
$(14;S)\rightarrow(14;3S)\rightarrow(14;9S)$.
Для победы Вани:
$14+9S\geq176$,
$9S\geq162$,
$S\geq18$.
Проверка: после хода Пети $(14;54)$ сумма равна $68<176$, а после хода Вани $(14;162)$ сумма равна $176$.
Второй способ – решение с помощью Python
def moves(a, b):
return [(a + 3, b), (a, b + 3),
(a * 3, b), (a, b * 3)]
for S in range(1, 162):
if any(
a + b < 176 and
any(x + y >= 176 for x, y in moves(a, b))
for a, b in moves(14, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $18$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
Петя не должен выиграть первым ходом, поэтому: $2S<69$, откуда $S\leq34$.
После любого хода Пети Ваня должен выиграть сразу. Значит, после хода Пети в куче должно быть не менее $35$ камней, так как тогда Ваня может удвоить количество камней.
Возможные ходы Пети:
$S\rightarrow S+1$,
$S\rightarrow2S$.
Поэтому:
$S+1\geq35$,
$2S\geq35$.
Из первого неравенства получаем $S\geq34$.
С учётом $S\leq34$ получаем: $S=34$.
Проверка:
- $34\rightarrow35\rightarrow70$;
- $34\rightarrow68\rightarrow69$.
В обоих случаях Петя не выигрывает первым ходом, а Ваня выигрывает следующим.
Второй способ – решение с помощью Python
def moves(x):
return [x + 1, x * 2]
def win1(x):
return x < 69 and any(y >= 69 for y in moves(x))
for S in range(1, 69):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $34$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного хода Пети. Укажите минимальное значение $S$, при котором такая ситуация возможна.
Первый способ – математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $2$: $(17;S)\rightarrow(17;2S)\rightarrow(17;4S)$.
Для победы Вани:
$17+4S\geq133$,
$4S\geq116$,
$S\geq29$.
Проверка: после хода Пети $(17;58)$ сумма равна $75<133$, а после хода Вани $(17;116)$ сумма равна $133$.
Второй способ – решение с помощью Python
def moves(a, b):
return [(a + 4, b), (a, b + 4),
(a * 2, b), (a, b * 2)]
for S in range(1, 116):
if any(
a + b < 133 and
any(x + y >= 133 for x, y in moves(a, b))
for a, b in moves(17, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $29$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного хода Пети. Укажите минимальное значение $S$, при котором такая ситуация возможна.
Первый способ – математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $3$: $(15;S)\rightarrow(15;3S)\rightarrow(15;9S)$.
Для победы Вани:
$15+9S\geq155$,
$9S\geq140$,
$S\geq15{,}56\ldots$
Минимальное целое значение $S=16$.
Проверка: после хода Пети $(15;48)$ сумма равна $63<155$, а после хода Вани $(15;144)$ сумма равна $159\geq155$.
Второй способ – решение с помощью Python
def moves(a, b):
return [(a + 1, b), (a, b + 1),
(a * 3, b), (a, b * 3)]
for S in range(1, 140):
if any(
a + b < 155 and
any(x + y >= 155 for x, y in moves(a, b))
for a, b in moves(15, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $16$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $17$ до $50$, так как при делении на $3$ получится не более $16$ камней.
Значит, Петя не может выиграть первым ходом при $S\geq51$.
Проверим минимальное значение $S=51$. После любого хода Пети получится:
$51\rightarrow48$;
$51\rightarrow43$;
$51\rightarrow17$.
Из каждой позиции Ваня выигрывает одним ходом:
$48\rightarrow16$;
$43\rightarrow14$;
$17\rightarrow14$.
Следовательно, минимальное значение $S=51$.
Второй способ – решение с помощью Python
def moves(x):
return [x - 3, x - 8, x // 3]
def win1(x):
return x > 16 and any(y <= 16 for y in moves(x))
for S in range(17, 1000):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $51$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $18$ до $53$, так как при делении на $3$ получится не более $17$ камней.
Значит, Петя не может выиграть первым ходом при $S\geq54$.
Проверим минимальное значение $S=54$. После любого хода Пети получится:
$54\rightarrow52$;
$54\rightarrow50$;
$54\rightarrow18$.
Из каждой позиции Ваня выигрывает одним ходом:
$52\rightarrow17$;
$50\rightarrow16$;
$18\rightarrow6$.
Следовательно, минимальное значение $S=54$.
Второй способ – решение с помощью Python
def moves(x):
return [x - 2, x - 4, x // 3]
def win1(x):
return x > 17 and any(
y <= 17 for y in moves(x)
)
for S in range(18, 1000):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $54$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $16$ до $63$, так как при делении на $4$ получится не более $15$ камней.
Значит, Петя не может выиграть первым ходом при $S\geq64$.
Проверим минимальное значение $S=64$. После любого хода Пети получится:
$64\rightarrow61$;
$64\rightarrow57$;
$64\rightarrow16$.
Из каждой позиции Ваня выигрывает одним ходом:
$61\rightarrow15$;
$57\rightarrow14$;
$16\rightarrow4$.
Следовательно, минимальное значение $S=64$.
Второй способ – решение с помощью Python
def moves(x):
return [x - 3, x - 7, x // 4]
def win1(x):
return x > 15 and any(
y <= 15 for y in moves(x)
)
for S in range(16, 1000):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $64$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите такое значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $23$ до $66$, так как $23\cdot3=69\geq67$.
Значит, Петя не может выиграть первым ходом при $S\leq22$.
Проверим $S=22$. После любого хода Пети получится:
$22\rightarrow23$;
$22\rightarrow26$;
$22\rightarrow66$.
Из каждой позиции Ваня выигрывает одним ходом:
$23\rightarrow69$;
$26\rightarrow78$;
$66\rightarrow67$.
Следовательно, подходит $S=22$.
Второй способ – решение с помощью Python
def moves(x):
return [x + 1, x + 4, x * 3]
def win1(x):
return x < 67 and any(
y >= 67 for y in moves(x)
)
for S in range(1, 67):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $22$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $24$ до $95$, так как при делении на $4$ получится не более $23$ камней.
Значит, Петя не может выиграть первым ходом при $S\geq96$.
Проверим минимальное значение $S=96$. После любого хода Пети получится:
$96\rightarrow94$;
$96\rightarrow92$;
$96\rightarrow24$.
Из каждой позиции Ваня выигрывает одним ходом:
$94\rightarrow23$;
$92\rightarrow23$;
$24\rightarrow22$.
Следовательно, минимальное значение $S=96$.
Второй способ – решение с помощью Python
def moves(x):
return [x - 2, x - 4, x // 4]
def win1(x):
return x > 23 and any(
y <= 23 for y in moves(x)
)
for S in range(24, 1000):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $96$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $31$ до $123$, так как при делении на $4$ получится не более $30$ камней.
Значит, Петя не может выиграть первым ходом при $S\geq124$.
Проверим минимальное значение $S=124$. После любого хода Пети получится:
$124\rightarrow121$;
$124\rightarrow119$;
$124\rightarrow31$.
Из каждой позиции Ваня выигрывает одним ходом:
$121\rightarrow30$;
$119\rightarrow29$;
$31\rightarrow28$.
Следовательно, минимальное значение $S=124$.
Второй способ – решение с помощью Python
def moves(x):
return [x - 3, x - 5, x // 4]
def win1(x):
return x > 30 and any(
y <= 30 for y in moves(x)
)
for S in range(31, 1000):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $124$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $33$ до $65$, так как $33\cdot2=66$.
Значит, Петя не может выиграть первым ходом при $S\leq32$.
Проверим $S=32$. После любого хода Пети получится:
$32\rightarrow33$;
$32\rightarrow64$.
Из каждой позиции Ваня выигрывает одним ходом:
$33\rightarrow66$;
$64\rightarrow128$.
Следовательно, минимальное значение $S=32$.
Второй способ – решение с помощью Python
def moves(x):
return [x + 1, x * 2]
def win1(x):
return x < 66 and any(
y >= 66 for y in moves(x)
)
for S in range(1, 66):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $32$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $29$ до $57$, так как $29\cdot2=58$.
Значит, Петя не может выиграть первым ходом при $S\leq28$.
Проверим $S=28$. После любого хода Пети получится:
$28\rightarrow29$;
$28\rightarrow32$;
$28\rightarrow56$.
Из каждой позиции Ваня выигрывает одним ходом:
$29\rightarrow58$;
$32\rightarrow64$;
$56\rightarrow112$.
Следовательно, минимальное значение $S=28$.
Второй способ – решение с помощью Python
def moves(x):
return [x + 1, x + 4, x * 2]
def win1(x):
return x < 58 and any(
y >= 58 for y in moves(x)
)
for S in range(1, 58):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $28$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение $S$, когда такая ситуация возможна.
Первый способ – математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $2$: $(7;S)\rightarrow(7;2S)\rightarrow(7;4S)$.
Для победы Вани:
$7+4S\geq81$,
$4S\geq74$,
$S\geq18{,}5$.
Минимальное целое значение $S=19$.
Проверка: после хода Пети $(7;38)$ сумма равна $45<81$, а после хода Вани $(7;76)$ сумма равна $83\geq81$.
Второй способ – решение с помощью Python
def moves(a, b):
return [(a + 1, b), (a, b + 1),
(a * 2, b), (a, b * 2)]
for S in range(1, 74):
if any(
a + b < 81 and
any(x + y >= 81 for x, y in moves(a, b))
for a, b in moves(7, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $19$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $26$ до $50$, так как $26\cdot2=52\geq51$.
Значит, Петя не может выиграть первым ходом при $S\leq25$.
Проверим $S=25$. После любого хода Пети получится:
$25\rightarrow26$;
$25\rightarrow29$;
$25\rightarrow50$.
Из каждой позиции Ваня выигрывает одним ходом:
$26\rightarrow52$;
$29\rightarrow58$;
$50\rightarrow51$.
Следовательно, минимальное значение $S=25$.
Второй способ – решение с помощью Python
def moves(x):
return [x + 1, x + 4, x * 2]
def win1(x):
return x < 51 and any(
y >= 51 for y in moves(x)
)
for S in range(1, 51):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $25$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного хода Пети. Укажите минимальное значение $S$, при котором такая ситуация возможна.
Первый способ – математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $2$: $(14;S)\rightarrow(14;2S)\rightarrow(14;4S)$.
Для победы Вани:
$14+4S\geq169$,
$4S\geq155$,
$S\geq38{,}75$.
Минимальное целое значение $S=39$.
Проверка: после хода Пети $(14;78)$ сумма равна $92<169$, а после хода Вани $(14;156)$ сумма равна $170\geq169$.
Второй способ – решение с помощью Python
def moves(a, b):
return [(a + 2, b), (a, b + 2),
(a * 2, b), (a, b * 2)]
for S in range(1, 155):
if any(
a + b < 169 and
any(x + y >= 169 for x, y in moves(a, b))
for a, b in moves(14, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $39$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $19$ до $37$, так как $19\cdot2=38$.
Значит, Петя не может выиграть первым ходом при $S\leq18$.
Проверим $S=18$. После любого хода Пети получится:
$18\rightarrow19$;
$18\rightarrow36$.
Из каждой позиции Ваня выигрывает одним ходом:
$19\rightarrow38$;
$36\rightarrow72$.
Следовательно, минимальное значение $S=18$.
Второй способ – решение с помощью Python
def moves(x):
return [x + 1, x * 2]
def win1(x):
return x < 38 and any(
y >= 38 for y in moves(x)
)
for S in range(1, 38):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $18$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного хода Пети. Укажите минимальное значение $S$, при котором такая ситуация возможна.
Первый способ – математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $2$: $(13;S)\rightarrow(13;2S)\rightarrow(13;4S)$.
Для победы Вани:
$13+4S\geq135$,
$4S\geq122$,
$S\geq30{,}5$.
Минимальное целое значение $S=31$.
Проверка: после хода Пети $(13;62)$ сумма равна $75<135$, а после хода Вани $(13;124)$ сумма равна $137\geq135$.
Второй способ – решение с помощью Python
def moves(a, b):
return [(a + 3, b), (a, b + 3),
(a * 2, b), (a, b * 2)]
for S in range(1, 122):
if any(
a + b < 135 and
any(x + y >= 135 for x, y in moves(a, b))
for a, b in moves(13, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $31$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение $S$, когда такая ситуация возможна.
Первый способ – математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $3$: $(6;S)\rightarrow(6;3S)\rightarrow(6;9S)$.
Для победы Вани:
$6+9S\geq65$,
$9S\geq59$,
$S\geq6{,}56\ldots$
Минимальное целое значение $S=7$.
Проверка: после хода Пети $(6;21)$ сумма равна $27<65$, а после хода Вани $(6;63)$ сумма равна $69\geq65$.
Второй способ – решение с помощью Python
def moves(a, b):
return [(a + 1, b), (a, b + 1),
(a * 3, b), (a, b * 3)]
for S in range(1, 59):
if any(
a + b < 65 and
any(x + y >= 65 for x, y in moves(a, b))
for a, b in moves(6, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $7$.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя.
Укажите минимальное значение $S$, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Первый способ – математическое решение
За один ход можно выиграть из любой позиции от $11$ до $43$, так как при делении на $4$ получится не более $10$ камней.
Значит, Петя не может выиграть первым ходом при $S\geq44$.
Проверим $S=44$. После любого хода Пети получится:
$44\rightarrow41$;
$44\rightarrow39$;
$44\rightarrow11$.
Из каждой позиции Ваня выигрывает одним ходом:
$41\rightarrow10$;
$39\rightarrow9$;
$11\rightarrow8$.
Следовательно, минимальное значение $S=44$.
Второй способ – решение с помощью Python
def moves(x):
return [x - 3, x - 5, x // 4]
def win1(x):
return x > 10 and any(
y <= 10 for y in moves(x)
)
for S in range(11, 1000):
if not win1(S) and all(win1(x) for x in moves(S)):
print(S)
break
Программа проверяет, что Петя не может выиграть первым ходом, а после любого его хода Ваня может выиграть сразу.
Программа выведет: $44$.