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