Özet - Memoization
- Algoritmalar kursu
- İleri seviye
- Ders 4/56
- 4 dk
Memoized Fibonacci çağırıp sonucu yazdıran mini görev yaparsın.
Özet - Memoization
Memoization; recursive çözümlerin tekrar hesabını önleyen önbellekleme tekniğidir. Karmaşıklığı üsselten polinomsala indirir.
Bu mini görevde memoized Fibonacci çağırıp sonucu yazdıracaksın; tüm adımları birleştir.
Memoization, dinamik programlamanın üstten aşağı (top-down) biçimidir; recursion + önbellek.
Uygulama Memoized Fibonacci yazdır
fib_memo_print(n) yaz. fib_memo(n, {}) çağırıp sonucu print() ile yazdır. fib_memo_print(15) çıktısı: 610.
Başlangıç kodu
def fib_memo_print(n):
# Memoized Fibonacci yazdırÖrnek çözüm
def fib_memo_print(n):
# Memoized Fibonacci yazdır
def fib_memo(n, memo):
if n in memo:
return memo[n]
if n <= 1:
return n
memo[n] = fib_memo(n - 1, memo) + fib_memo(n - 2, memo)
return memo[n]
print(fib_memo(n, {}))
fib_memo_print(15)Beklenen çıktı
610
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Özet - Memoization: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
memoization |
Önbellek |
dict |
Sözlük |
recursion |
Kendini çağırır |
cache |
Hızlı |
2 Taban koşulu
if n <= ____:
if n <= 1:
Açıklama: 1 doğru.
3 Memoization hangi tekniğin parçasıdır?
- Böl ve yönet
- Greedy
- Dinamik programlama Doğru cevap
- Backtracking
Açıklama: Dinamik programlama.