Информатика · ҰБТ сұрағы №13889
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))
Программа бірінші print командасымен қандай мән шығарады?
Дұрыс жауабы мен түсіндірмесі
Жауабы: 15
solve(n, k) — C(n, k): C(6,2) = 6·5/2 = 15. 30 — орналастыру саны A(6,2).
«Алгоритмдер және программалау» тақырыбынан тағы
- Алгоритмді оның уақыт күрделілігімен (ең нашар жағдайда, n — элемент саны) сәйкестендіріңіз.
- Программа нәтижесін анықтаңыз: def r(s): if len(s) < 2: return 0 return (s[0] != s[-1]) + r(s[1:-1]) print(r("...
- Графтар туралы қай тұжырымдар дұрыс?
- Жадыны пайдаланбайтын solve(6, 2) шақыруы барлығы неше рет (бастапқыны қоса) орындалады?
- Python-дағы open() функциясының файл режимін оның әрекетімен сәйкестендіріңіз.
- Программа экранға не шығарады? def g(n): if n == 0: return 0 if n % 2: return g(n - 1) + n return g(n // 2) *...
- Программаның соңғы print командасы қандай үш мәнді шығарады?
- Функция берілген: def f(n): if n <= 1: return 1 return f(n - 1) + f(n - 2) f(6) шақырылғанда f функциясы барлы...