Recursive üs alma
- Algoritmalar kursu
- Başlangıç
- Ders 50/80
- 4 dk
power(base, exp) recursive fonksiyonunu eklersin.
Kombinasyon ekle
Şimdi combination(n, k) fonksiyonunu ekliyoruz. Bu, n elemandan k'lı kaç grup seçileceğini hesaplar.
Pascal yöntemi: C(n,k) = C(n-1,k-1) + C(n-1,k). Taban durum: k=0 veya k=n ise 1.
Pascal yöntemi
C(n,k) = C(n-1,k-1) + C(n-1,k). Bu, bir elemanı seçip seçmeme durumlarının toplamıdır. Her durum bir recursive çağrıdır.
Bu yöntem, kombinasyonu recursive olarak hesaplamayı sağlar. İki çağrı yapılır ve sonuçlar toplanır.
Uygulama Kombinasyon
combination(n, k) yaz. k=0 veya k=n ise 1, değilse combination(n-1,k-1) + combination(n-1,k). print(combination(5, 2)) ile 10 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Ö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)
print(combination(5, 2))Beklenen çıktı
10
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kombinasyonun taban durumu nedir?
- k = 1
- n = 0
- k = 0 veya k = n Doğru cevap
- n = k = 0
Açıklama: k=0 veya k=n ise 1 döndürülür.
2 İki çağrı
C(n,k) = C(n-1, k-1) + ____
C(n,k) = C(n-1, k-1) + C(n-1, k)
Açıklama: C(n-1, k) doğru.
3 Recursive üs alma: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
combination |
Kombinasyon |
Pascal |
İki çağrı |
k=0 |
Taban |
C(n-1,k-1) |
Seç |