Автор | Сообщение |
|
Отправлено: 25.03.23 22:45. Заголовок: 5788
Не могу найти ошибку. from functools import lru_cache @lru_cache def F(x, y, n, m): if x < n: return F(x + 1, y, n, m) + F(x * 2, y, n, m) if y < m: return F(x, y + 3, n, m) if x == n and y == m: return 1 else: return 0 print(F(1, 0, 17, 27))
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 27.03.23 08:13. Заголовок: from functools impor..
Неверно рекурсию используете. Из каждой точки возможно три варианта хода. from functools import cache @cache def F(x, y, n, m): if x > n or y > m: return 0 if x == n and y == m: return 1 return F(x + 1, y, n, m) + F(x * 2, y, n, m) + F(x, y + 3, n, m) print(F(1, 0, 17, 27))
|
|
|
|
Отправлено: 27.03.23 21:28. Заголовок: MrAndrewson пишет: ..
MrAndrewson пишет: цитата: | from functools import cache |
|
Почему вы используете просто cache вместо lru_cache? Это то же самое? Почему нужно не ставить какого-либо условия, а просто вставить return в конце?
|
|
|
|