Faktöriyel Hesabında İteratif Yöntem mi? Recursive Yöntem mi?

Faktöriyel hesabını iteratif ve recursive yöntemle daha evvel yapmıştık. İlgili yazılara arşivden ulaşabilirsiniz. Peki ama hangi yöntem daha hızlı sonuç veriyor buna bir bakalım.

Her iki yöntem için kullandığım python kodları aşağıda. Bir for döngüsü ile 100! den 500! e kadar 10 ar artırarak arada ki tüm sayıların faktöriyelini buldum ve bunun için geçen süreleri bir diziye yazdırdım. Daha sonra çıkan sonuçları bir grafik yardımı ile çizdirdim. Sonuçlar beklediğim gibi çıktı. 🙂

İteratif Yöntem İçin Kullandığım Kodlar:

# Bu program faktöryel hesabını iteratif yöntemle yapar
from timeit import default_timer as timer

# Başlangıç değeri
n = 100

# 100'den 500'e kadar 10 adımlarla döngü
for x in range(n, 510, 10):
    sonuc = 1
    st = timer()  # Başlangıç zamanı
    for i in range(1, x + 1):
        sonuc *= i  # Faktöryel hesaplama
    et = timer()  # Bitiş zamanı
    exc = (et - st)  # Geçen süre
    print(f"{x}! faktöryelinin hesaplanma süresi: {exc * 100000:.2f} mikrosaniye")

Recursive Yöntem İçin Kullandığım Kodlar:

# Bu program faktöryel hesabını recursive yöntemle yapar
from timeit import default_timer as timer

# Recursive faktöriyel hesaplama fonksiyonu
def faktoriyel(n):
    if n <= 1:
        return 1
    else:
        return faktoriyel(n - 1) * n

# Başlangıç değeri
n = 100

# 100'den 500'e kadar 10 adımlarla faktöriyel hesaplama
for x in range(n, 510, 10):
    st = timer()  # Başlangıç zamanı
    sonuc = faktoriyel(x)  # Faktöriyel hesaplama
    et = timer()  # Bitiş zamanı
    exc = (et - st)  # Geçen süre
    print(f"{x}! faktöryelinin hesaplanma süresi: {exc * 100000:.2f} mikrosaniye")

Çıkan süreler milisaniye cinsindendir.

Sonuç:

Kolay gele…

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir