CodeBlanks Logo Icon CodeBlanks

Sonuçları yazdır

Üs ve kombinasyon sonuçlarını ekrana yazdırırsın.

Hızlı üs ekle

Son adımda fast_power(base, exp) ekliyoruz. Bu, üs çift olduğunda kareyle bölme yaparak O(log n) çalışır.

Exp çiftse: base^exp = (base^2)^(exp/2). Exp tekses: base * base^(exp-1). Bu, çağrı sayısını yarıya indirir.

Proje tamamlandı

Artık recursive hesaplama uygulaman var: power üs alır, combination kombinasyon hesaplar, print_results yazdırır, fast_power hızlı üs alır.

Her fonksiyon bir öncekinin üzerine inşa edildi. Recursion'ın gücünü ve birikimli kodu öğrendin.

Uygulama Hızlı üs

fast_power(base, exp) yaz. exp=0 ise 1, exp çift ise fast_power(base*base, exp//2), değilse base * fast_power(base, exp-1). print(fast_power(2, 10)) ile 1024 yazdır.

Başlangıç kodu

solution.py
def power(base, exp):
    # Üs al
    if exp == 0:
        return 1
    return base * power(base, exp - 1)
def combination(n, k):
    # Kombinasyon hesapla
    if k == 0 or k == n:
        return 1
    return combination(n - 1, k - 1) + combination(n - 1, k)
def print_results():
    # Sonuçları yazdır
    print(power(2, 5))
    print(combination(5, 2))
def fast_power(base, exp):
    # Hızlı üs al

Örnek çözüm

solution.py
def power(base, exp):
    # Üs al
    if exp == 0:
        return 1
    return base * power(base, exp - 1)
def combination(n, k):
    # Kombinasyon hesapla
    if k == 0 or k == n:
        return 1
    return combination(n - 1, k - 1) + combination(n - 1, k)
def print_results():
    # Sonuçları yazdır
    print(power(2, 5))
    print(combination(5, 2))
def fast_power(base, exp):
    # Hızlı üs al
    if exp == 0:
        return 1
    if exp % 2 == 0:
        return fast_power(base * base, exp // 2)
    return base * fast_power(base, exp - 1)
print(fast_power(2, 10))

Beklenen çıktı

1024

Soru ve cevaplar

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

1 Sonuçları yazdır: kavramları eşleştir

Kavram Anlamı
fast_power Hızlı üs
çift Kareyle böl
tek 1 azalt
O(log n) Karmaşıklık

2 fast_power'ın karmaşıklığı nedir?

  • O(n)
  • O(n^2)
  • O(2^n)
  • O(log n) Doğru cevap

Açıklama: O(log n)'dir.

3 Çift kontrol

Soru
exp ____ 0 ise exp çifttir.
Cevap
exp % 2 == 0 ise exp çifttir.

Açıklama: % 2 == doğru.

Başlangıç bölümündeki tüm dersler