Sonuçları yazdır
- Algoritmalar kursu
- Başlangıç
- Ders 52/80
- 4 dk
Ü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
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
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
exp ____ 0 ise exp çifttir.
exp % 2 == 0 ise exp çifttir.
Açıklama: % 2 == doğru.