Информатика · ҰБТ сұрағы №14969

Программа орындалғанда қандай екі сан шығады? from functools import lru_cache @lru_cache(maxsize=None) def f(n): return n if n < 2 else f(n - 1) + f(n - 2) f(10) i = f.cache_info() print(i.hits, i.misses)

Дұрыс жауабы мен түсіндірмесі
Жауабы: 8 11

f(0) … f(10) — 11 әртүрлі аргумент, олардың әрқайсысы бір рет есептеледі (11 miss). Әр n ≥ 2 үшін f(n−2) екінші шақыруда кэштен алынады: 10 − 2 = 8 hit.

«Алгоритмдер және программалау» тақырыбынан тағы