Форум » Теория игр » Задача 2426 (№21) зависает при запуске. Не выдает результат. Подскажите, что не так...пожалуйста? » Ответить

Задача 2426 (№21) зависает при запуске. Не выдает результат. Подскажите, что не так...пожалуйста?

ИринаМалышева: [pre2] def f(x,p): if x>=51 or p>5: return p==5 if p==1 : return f(x*3, p+1) or f(x+1, p+1)or f(x+3, p+1) if p>1 and p%2==1 and x%2==1: return f(x*3, p+1) and f(x+1, p+1)and f(x+3, p+1) if p>1 and p%2==0 and x%2==1: return f(x*3, p+1) or f(x+1, p+1)or f(x+3, p+1) for s in range (1, 50+1): if f(s,1): print(s) [/pre2]

Ответов - 2

Поляков: Рекурсия, сложность 3^N - это не шутки. Очень долго считает (не дождетесь, нет шансов). Варианты решения: 1) динамическое программирование 2) кэширование 3) если совсем лень, то готовое кэширование [pre2] from functools import lru_cache @lru_cache def f(x,p): ... [/pre2]

ИринаМалышева: Поняла. Спасибо большое.



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