Информатика · ҰБТ сұрағы №13890
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))

solve(n, k) функциясы математикалық тұрғыдан қандай шаманы есептейді?

Дұрыс жауабы мен түсіндірмесі
Жауабы: C(n, k) біріктіру санын

Қайталану C(n,k) = C(n−1,k−1) + C(n−1,k) — Паскаль үшбұрышының ережесі, базалық жағдайлар C(n,0) = C(n,n) = 1.

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