Автор | Сообщение |
|
Отправлено: 17.12.21 19:57. Заголовок: Задача 2426 (№21) зависает при запуске. Не выдает результат. Подскажите, что не так...пожалуйста?
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)
|
|
|
Новых ответов нет
[см. все]
|
|
|
| Администратор
|
Сообщение: 3096
|
|
Отправлено: 17.12.21 20:05. Заголовок: Рекурсия, сложность ..
Рекурсия, сложность 3^N - это не шутки. Очень долго считает (не дождетесь, нет шансов). Варианты решения: 1) динамическое программирование 2) кэширование 3) если совсем лень, то готовое кэширование from functools import lru_cache @lru_cache def f(x,p): ...
|
|
|
|
Отправлено: 17.12.21 20:58. Заголовок: Поняла. Спасибо боль..
Поняла. Спасибо большое.
|
|
|
|