Форум » Теория игр » Задача 3489 » Ответить

Задача 3489

dimanoffroader: При ответе на вопрос 2 данной задачи у меня минимальное значение 14, а вот максимальное 28. И это не совпадает с ответом (27) Программу прикладываю, но ответ 28,13 прогонял разными способами. Остальные ответы совпали [pre2] from functools import * def moves(h): a,b = h x=[] if a>0: x.append((a-1,b)) if b>0: x.append((a,b-1)) if a>1: x.append(((a-1)//2,b)) if b>1: x.append((a,(b-1)//2)) return x @lru_cache(None) def game (h): a,b = h if a+b<=18: return "W" if any(game(m) == "W" for m in moves(h)): return "P1" if all(game(m) == "P1" for m in moves(h)): return "B1" if any(game(m) == "B1" for m in moves(h)): return "P2" if all(game(m) == "P1" or game(m) == "P2" for m in moves(h)): return "B2" for s in range(1, 50): h = s,13 if game(h)=="P2": print(s, game(h)) [/pre2]

Ответов - 1

cabanov.alexey: Меня смущает ваш ход (a-1)//2 Если a=10, то остаётся (10-1)//2 = 4, а должно получаться 5. Пишите просто a//2



полная версия страницы