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
n = 100
for x in range(n,510,10):
sonuc = 1
st=timer()
for i in range(1, x + 1, 1):
sonuc = sonuc * i
et=timer()
exc=(et-st)
print(exc*100000)

 

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

# bu program faktöryel hesabını recursive yöntemle yapar
from timeit import default_timer as timer
def faktoriyel(n):
if n <= 1:
sonuc = 1
else:
sonuc = faktoriyel(n - 1) * n
return sonuc
n = 100
for x in range(n,510,10):
sonuc = 1
st=timer()
sonuc=faktoriyel(x)
et=timer()
exc=(et-st)
print(exc*100000)

Çıkan süreler çok küçük olduğundan sonucu daha iyi grafize etmek adına 100.000 ile çarptım.

Sonuç:

Paylaşmayı unutmayın!
0 0 votes
Article Rating
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments