Информатика · ҰБТ сұрағы №13893
def solve(n, k): if k == 0 or k == n: return 1 return solve(n - 1, k - 1) + solve(n - 1, k) calls = 0 memo = {} def solve2(n, k): global calls calls += 1 if k == 0 or k == n: return 1 if (n, k) in memo: return memo[(n, k)] memo[(n, k)] = solve2(n - 1, k - 1) + solve2(n - 1, k) return memo[(n, k)] print(solve(6, 2)) print(solve2(6, 2), calls, len(memo))

solve2(6, 2) аяқталғаннан кейін memo[(4, 2)] мәні қандай?

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

memo[(4,2)] = C(4,2) = 6. (4,1) = 4, (3,2) = 3, (5,2) = 10.

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