Почему @lru_cache не работает на настольных компьютерах, а работает только в онлайн-интерпретаторе Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему @lru_cache не работает на настольных компьютерах, а работает только в онлайн-интерпретаторе Python?

Сообщение Anonymous »

Я студент, наш преподаватель попросил нас выполнить задание ниже (для удобства перевела на английский)

Код: Выделить всё

The algorithm for computing the function F(n), where n is a natural number, is given by the following relations:

F(n) = n if n ≥ 10,000,

F(n) = n/4 + F(n / 4 + 2) if n < 10 000 and n is divisible by 4,

F(n) = 1 + F(n + 2) , if n < 10 000 and n is not divisible by 4.

What is the value of the expression F(174) - F(3)?
Правильный ответ: 67
Он рекомендовал нам использовать lru_cache для кэширования и ускорения рекурсии, но это кэширование не помогает. не работает на настольном компьютере, только в онлайн-интерпретаторах Python
Мой код:

Код: Выделить всё

import sys
from functools import lru_cache

sys.setrecursionlimit(10**6)

@lru_cache(None)
def F(n):
if n >= 10000:
return n
elif n % 4 == 0:
return n // 4 + F(n // 4 + 2)
else:
return 1 + F(n + 2)

print(F(174) - F(3))
VScode:
Программа работает в VScode, выходной ответ пуст
Изображение
OnlineGDB:
Программа запускается в OnlineGDB, отображается правильный ответ
Если я закомментирую строки с кешем, то все будет работать и без него . Беда в том, что подобные задачи мы уже решали, и была такая же ситуация - без кеширования не обойтись, а оно работает только в онлайн-переводчиках
Самое смешное, что эти задания предназначены для экзамена, где доступа к онлайн-переводчику, естественно, не будет.
Программа должна выдавать ответ 67 как на ПК, так и в онлайн-переводчиках, но это происходит только в последнем случае. Возможно, нет смысла использовать кеширование в этой задаче, но я не могу понять, почему оно отказывается работать

Подробнее здесь: https://stackoverflow.com/questions/783 ... python-int
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»