![]()
|
|||
return f(x + 2, y, p + 1) or f(x, y + 2, p + 1) or f(3 * x, y, p + 1) or f(x, 3 * y, p + 1) ⇐ ПредыдущаяСтр 2 из 2 return f(x + 2, y, p + 1) or f(x, y + 2, p + 1) or f(3 * x, y, p + 1) or f(x, 3 * y, p + 1) else: return f(x + 2, y, p + 1) and f(x, y + 2, p + 1) and f(3 * x, y, p + 1) and f(x, 3 * y, p + 1) else: return False for i in range(1, 60): if f(8, i, 1): print(i) Результатом ее работы будет число 19, поэтому его берем в ответ. Для самоконтроля, найденное число должно быть меньше 20, так как в противном случае Петя выиграет своим первым ходом. Пункт В:
def f(x, y, p): if x + y > = 68 and (p == 5 or p == 3): return True elif x + y < 68 and p < 5: if p % 2 > 0: return f(x + 2, y, p + 1) and f(x, y + 2, p + 1) and f(3 * x, y, p + 1) and f(x, 3 * y, p + 1) else: return f(x + 2, y, p + 1) or f(x, y + 2, p + 1) or f(3 * x, y, p + 1) or f(x, 3 * y, p + 1) else: return False for i in range(1, 60): if f(8, i, 1): print(i)
Результатом работы программы будут два числа: 17 и 18. В ответ берем число 17.
https: //www. youtube. com/watch? v=Ow-0p7o3x_E
https: //www. youtube. com/watch? v=nbPqV9GNLOY
https: //www. youtube. com/watch? v=tuRkDZ1LOJ4
|
|||
|