Ошибка.
Попробуйте повторить позже
Дан набор слов ПРОИЗВОДСТВО, ПРОВЕРКА, ПРОСТОКВАША, САЛЮТ, САМОКАТ, САРКАЗМ.
Определите, у кого из игроков есть выигрышная стратегия. В ответ запишите первую заглавную букву имени этого игрока.
Сразу отметим, что нельзя ставить рядом две гласные, поэтому слово ПРОИЗВОДСТВО даже не будем рассматривать.
У Пети есть выбор - начинать с буквы П или с буквы С.
Если он начнёт с буквы П, то после буквы О у Вани будет выбор, какое слово дальше собирать. Очевидно, Ваня выберет слово ПРОВЕРКА и победит.
Если Петя начнёт с буквы С, то после буквы А у Пети будет выбор. Он может выбрать букву Л и собрать слово САЛЮТ, тогда он победит.
Очевидно, что выигрышная стратегия есть у Пети.
Ошибка.
Попробуйте повторить позже
Дан набор слов ВЫИГРЫШ, ВЫХОД, ВЫХУХОЛЬ, ПРОХОД, ПРОЕЗД, ПРООБРАЗ.
Определите, у кого из игроков есть выигрышная стратегия. В ответ запишите первую заглавную букву имени этого игрока.
Сразу отметим, что нельзя ставить рядом две гласные, поэтому слова ВЫИГРЫШ и ПРООБРАЗ даже не будем рассматривать.
У Вани есть выбор - начинать с буквы В или с буквы П.
Если он начнёт с буквы В, то после буквы Х у Пети будет выбор, какое слово дальше собирать. Очевидно, Петя выберет слово ВЫХУХОЛЬ и победит.
Если Ваня начнёт с буквы П, то после буквы О у Пети будет выбор. Он может выбрать букву Х и собрать слово ПРОХОД, тогда он победит.
Ошибка.
Попробуйте повторить позже
Дан набор слов МАРКА, МАРИНА, МАРС, ДРЕВО, ДРЕНАЖ, ДРЕЗИНА.
Определите, у кого из игроков есть выигрышная стратегия. В ответ запишите первую заглавную букву имени этого игрока.
У Пети есть выбор - начинать с буквы М или с буквы Д.
Если он начнёт с буквы М, то после буквы Р у Вани будет выбор, какое слово дальше собирать. Очевидно, Ваня выберет слово МАРС и победит.
Если Петя начнёт с буквы Д, то после буквы Е у Вани будет выбор. Он может выбрать букву Н и собрать слово ДРЕНАЖ, тогда он победит.
Ошибка.
Попробуйте повторить позже
Найдите все значения S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Найденные значения запишите в ответе в порядке возрастания без пробелов.
from functools import lru_cache lru_cache(None) def f(a, b, c=0): if a + b >= 186: return 0 if c > 5: return 1000 t = [f(a+7, b, c+1), f(a+11, b, c+1), f(a*2, b, c+1), f(a, b*2, c+1), f(a, b+7, c+1),f(a, b+11, c+1)] n = [i for i in t if i <= 0] if n: return -max(n) + 1 return -max(t) a = [] for i in range(1, 176): if f(10, i) == -2: a.append(i) print(a)
Ошибка.
Попробуйте повторить позже
Найдите среднее значение значений S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
В ответ запишите целую часть найденного значения.
from functools import lru_cache lru_cache(None) def f(a, b, c=0): if a + b >= 205: return 0 if c > 5: return 1000 if a > b: t = [f(a, b + a, c + 1), f(a, b * 2, c + 1)] else: t = [f(a + b, b, c + 1), f(a * 2, b, c + 1)] n = [i for i in t if i <= 0] if n: return -max(n) + 1 return -max(t) a = [] for i in range(1, 197): if f(9, i) == -2: a.append(i) print(sum(a)/len(a))
Ошибка.
Попробуйте повторить позже
Найдите значения S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым, вторым или третьим ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым или вторым ходом.
Найденные значения запишите в ответе в порядке возрастания без пробелов.
from functools import lru_cache lru_cache(None) def f(a, b, c=0): if a + b >= 169: return 0 if c > 5: return 1000 t = [f(a+4, b, c+1), f(a*2, b, c+1), f(a*3, b, c+1), f(a, b+4, c+1), f(a, b*2, c+1), f(a, b*3, c+1)] n = [i for i in t if i <= 0] if n: return -max(n) + 1 return -max(t) for i in range(1, 154): if f(15, i) == -3: print(i)
Ошибка.
Попробуйте повторить позже
Найдите значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
from functools import lru_cache lru_cache(None) def f(a, b, c=0): if a + b >= 124: return 0 if c > 5: return 1000 t = [f(a+1, b, c+1), f(a+3, b, c+1), f(a+b, b, c+1), f(a, b+1, c+1), f(a, b+3, c+1), f(a, b+a, c+1)] n = [i for i in t if i <= 0] if n: return -max(n) + 1 return -max(t) for i in range(1, 111): if f(13, i) == -2: print(i)
Ошибка.
Попробуйте повторить позже
Найдите количество значений S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
def f(a): if a >= 47: #если камней в куче стало больше 47, то выход из функции return 0 t = [f(a+2), f(a+5), f(a*2)] #сформировали список ходов n = [i for i in t if i <= 0] #записываем отрицательные элементы из t if n: #если n не пустой список return -max(n)+1 #получаем положительный выигрышный ход для Пети else: return -max(t) #получаем отрицательный выигрышный ход для Вани for i in range(1,47): if f(i) == -2: print(i)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19 найдите количество пар (S;P), при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым, вторым или третьим ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым или вторым ходом.
from functools import lru_cache @lru_cache(None) def f(a, b): if a + b >= 50: return 0 h = [f(a + 2, b), f(a * 3, b),f(a, b + 2),f(a, b * 3)] t = [i for i in h if i <= 0] if t:return -max(t)+1 return -max(h) c = 0 for i in range(1, 40): for j in range(1, 40): if f(i, j) == -3 and not(f(i, j) == -2) and not(f(i, j) == -1): print(i, j) c += 1 print(c)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, известно, что Петя выигрывает, сделав не более двух ходов. Укажите минимальное и максимальное значения S, если известно, что Петя не может гарантированно выиграть, сделав один ход.
Значения запишите в порядке возрастания через пробел.
from functools import lru_cache @lru_cache(None) def f(a): if a >= 65: return 0 if a * 3 >= 109: n = [f(a + 5), f(a + 7)] else: n = [f(a + 5), f(a + 7), f(a * 3)] #список с возможными ходами t = [i for i in n if i <= 0] #список с отрицательными ходами if t: return -max(t) + 1 #выигрыш Пети else: return -max(n) #выигрыш Вани for i in range(1, 40): if f(i) == 2: print(i)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите произведение значений S, при которых одновременно выполняются два условия:
– у Пети есть выигрышная стратегия, позволяющая ему выиграть первым, вторым или третьим ходом при любой игре Вани;
– у Пети нет стратегии, которая позволит ему гарантированно выиграть первым или вторым ходом.
from functools import lru_cache lru_cache(None) def f(a, b, d, c = 0): if a + b + d >= 300: return 0 if c > 4: return 1000000 t = [f(a*3, b, d, c+1),f(a+b+d, b, d, c+1),f(a, b*3, d, c+1), f(a, b + a + d, d, c+1),f(a, b, d*3, c+1),f(a, b, d+a+b, c+1)] n = [i for i in t if i <= 0] if n: return -max(n) + 1 return -max(t) a = [] for i in range(1,101): if f(45, i, i+25) == 3: a.append(i) print(a)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Если найдено несколько значений S, в ответе запишите минимальное из них.
from functools import lru_cache lru_cache(None) def f(a, b, d, c = 0): if a + b + d >= 150: return 0 if c > 3: return 1000000 t = [f(a*2, b, d, c+1),f(a+16, b, d, c+1),f(a+32, b, d, c+1), f(a, b*2, d, c+1),f(a, b+16, d, c+1),f(a, b+32, d, c+1), f(a, b, d*2, c+1),f(a, b, d+16, c+1),f(a, b, d+32, c+1)] n = [i for i in t if i <= 0] if n: return -max(n) + 1 return -max(t) a = [] for i in range(1,67): if f(6, 2*i, 3*i) == -2: a.append(i) print(a)
Ошибка.
Попробуйте повторить позже
Найдите два значения S, при которых одновременно выполняются два условия:
– у Пети есть выигрышная стратегия, позволяющая ему выиграть первым, вторым или третьим ходом при любой игре Вани;
– у Пети нет стратегии, которая позволит ему гарантированно выиграть первым или вторым ходом.
Ответы укажите в порядке возрастания через пробел.
from functools import lru_cache @lru_cache(None) def f(a): if a >= 100: return 0 if a * 4 > 120: n = [f(a + 3)] else: n = [f(a + 3), f(a * 4)] #список с возможными ходами t = [i for i in n if i <= 0] #список с отрицательными ходами if t: return -max(t) + 1 #выигрыш Пети else: return -max(n) #выигрыш Вани for i in range(1, 61): if f(i) == 3: print(i)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите количество значений Y, при которых одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
def f(x,y): if (x**2 + y**2)**0.5 >= 20:return 0 m = [f(x+2,y),f(x,y+3)] n = [i for i in m if i <= 0] if n:return -max(n) + 1 return -max(m) c = 0 for y in range(1,20): if f(5,y) == -2: c += 1 print(c)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите количество значений S, при которых одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
from functools import lru_cache @lru_cache(None) def f(a,b,c): if a+b+c >= 110:return 0 m = [f(a+1,b,c),f(a*2,b,c),f(a,b+1,c),f(a,b*2,c),f(a,b,c+1),f(a,b,c*2)] n = [i for i in m if i <= 0] if n:return -max(n) + 1 return -max(m) c = 0 for i in range(1,95): if f(10,5,i) == -2: c += 1 print(c)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
def f(a): if a >= 64:return 0 m = [f(a+1),f(a*2)] n = [i for i in m if i <= 0] if n:return -max(n) + 1 return -max(m) for i in range(1,64): if f(i) == -2: print(i)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите минимальное значение S, при котором у Вани есть выигрышная стратегия, позволяющая ему выиграть максимум третьим ходом.
from functools import lru_cache @lru_cache(None) def f(a,b): if a + b >= 122:return 0 m = [f(a+1,b),f(a*3,b),f(a,b+1),f(a,b*3)] n = [i for i in m if i <= 0] if n:return -max(n)+1 return -max(m) for i in range(1,115): if f(7,i) == -3: print(i) break
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
from functools import lru_cache @lru_cache(None) def f(a): if a >= 120:return 0 m = [f(a+2),f(a+3),f(a*3)] n = [i for i in m if i <= 0] if n:return -max(n)+1 return -max(m) for i in range(1,120): if f(i) == -2: print(i) break
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
from functools import lru_cache @lru_cache(None) def f(a,b): if a+b >= 60:return 0 m = [f(a+1,b),f(a*2,b),f(a,b+1),f(a,b*2)] t = [i for i in m if i <= 0] if t:return -max(t)+1 return -max(m) for i in range(1,50): if f(10,i) == -2: print(i)
Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании 19, найдите значение S, при котором одновременно выполняются два условия: – у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети; – у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
def f(a): if a >= 70:return 0 t = [f(a+1),f(a*2)] n= [i for i in t if i <= 0] if n:return -max(n) + 1 return -max(t) for i in range(1,70): if f(i) == -2: print(i)