CodeBlanks Logo Icon CodeBlanks

Fibonacci tabulation

Fibonacci'yi tabloyla hesaplamayı öğrenirsin.

Fibonacci tabulation

Fibonacci tabulation: bir dizi kur, dp[0]=0, dp[1]=1, sonra dp[i] = dp[i-1] + dp[i-2].

Bu, recursion'sız ve önbellek'siz Fibonacci hesaplar; çok verimlidir.

Tabulation, Θ(n) zaman ve Θ(n) bellek verir; tek değişkenle Θ(1) belleğe indirilebilir.

Bellek optimizasyonu

Sadece iki önceki değeri tutmak, tablonun tamamını saklamaya gerek kalmamasını sağlar; bellek Θ(1) olur.

Ancak tablo yöntemi, genel DP problemlerinde izi kolaylaştırır; bu yüzden öğretimde tercih edilir.

İki değişkenli çözüm, önbellek karmaşıklığından kurtulur; hızı korunur.

Uygulama Fibonacci optimizasyon

fib_opt(n) yaz. Sadece iki değişkenle Fibonacci hesapla. print(fib_opt(10)) ile 55 yazdır.

Başlangıç kodu

solution.py
def fib_opt(n):
    # Fibonacci optimizasyon

Örnek çözüm

solution.py
def fib_opt(n):
    # Fibonacci optimizasyon
    if n <= 1:
        return n
    prev2 = 0
    prev1 = 1
    for i in range(2, n + 1):
        curr = prev1 + prev2
        prev2 = prev1
        prev1 = curr
    return prev1
print(fib_opt(10))

Beklenen çıktı

55

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Fibonacci tabulation: kavramları eşleştir

Kavram Anlamı
dp Tablo
i-1 Önceki
i-2 İki önceki
O(n) Doğrusal

2 Fibonacci tabulation bellek karmaşıklığı nedir?

  • Θ(1)
  • Θ(n) Doğru cevap
  • Θ(log n)
  • Θ(n^2)

Açıklama: Θ(n).

3 Döngü gövdesi

Soru
dp[i] = dp[i - 1] + dp[i - ____]
Cevap
dp[i] = dp[i - 1] + dp[i - 2]

Açıklama: 2 doğru.

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