CodeBlanks Logo Icon CodeBlanks

Recursive üs alma

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

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

Ö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)
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ı

Soru
C(n,k) = C(n-1, k-1) + ____
Cevap
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ç

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