CodeBlanks Logo Icon CodeBlanks

Özet - Memoization

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

solution.py
def fib_memo_print(n):
    # Memoized Fibonacci yazdır

Örnek çözüm

solution.py
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

Soru
if n <= ____:
Cevap
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.

İleri seviye bölümündeki tüm dersler