Recursive faktöryel
- Algoritmalar kursu
- Başlangıç
- Ders 46/80
- 4 dk
Faktöryeli recursion ile hesaplayan fonksiyonu yazmayı öğrenirsin.
İteratif çözüm
Faktöryel bir döngüyle de hesaplanabilir: 1'den n'ye kadar sayıları çarparsın. Bu, recursion'dan daha az bellek kullanır.
İteratif çözüm O(n) zaman ve O(1) bellek gerektirir. Recursive çözüm ise O(n) zaman ve O(n) bellek (yığın) gerektirir.
Recursive vs iteratif
Recursive faktöryel daha okunaklıdır ama her çağrı yığın alanı kullanır. İteratif çözüm daha verimlidir ama daha az zariftir.
Küçük n değerleri için her iki yöntem de hızlıdır. Büyük n için iteratif tercih edilir çünkü yığın taşması riski yoktur.
Uygulama İteratif faktöryel
factorial_iter(n) yaz. Döngü ile 1'den n'ye çarp. print(factorial_iter(5)) ile 120 yazdır.
Başlangıç kodu
def factorial_iter(n):
# Döngü ile faktöryelÖrnek çözüm
def factorial_iter(n):
# Döngü ile faktöryel
result = 1
for i in range(1, n + 1):
result = result * i
return result
print(factorial_iter(5))Beklenen çıktı
120
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İteratif çarpım
Sonucu biriktirmek için ____ = 1 ile başla.
Sonucu biriktirmek için result = 1 ile başla.
Açıklama: result doğru.
2 Recursive faktöryel: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
Recursive |
Yığın kullanır |
İteratif |
O(1) bellek |
0! = 1 |
Taban |
n! = n*(n-1)! |
Özyineleme |
3 İteratif faktöryel ne kadar bellek kullanır?
- O(1) Doğru cevap
- O(n^2)
- O(n)
- O(2^n)
Açıklama: İteratif faktöryel O(1) bellek kullanır.