שאלה בפייתון

maor650

New member
שאלה בפייתון

שלום,
ברצוני לדעת מהו ההבדל בין פונקציה רקורסיבית ופונקציה איטרטיבית בפייתון -ואם ניתן לקבל הדגמה לכך בקוד.
נ.ב: אם קיים פורום אחר שכדאי לשאול בו לגבי פייתון- אשמח לדעת:).
תודה לעוזרים...
 

אiהד

New member
בפורום שפות תכנות יענו לך יותר בהרחבה

עד כמה שאני יודע פונקציה רקורסיבית זו פונקציה שקוראת לעצמה, ופונקציה איטרטיבית (בתכנות) זו פונקציה שמוגדרת רקורסיבית אבל מוצאים דרך להחליף את הקריאות הרקורסיביות בלולאה.
למשל: אם אני רוצה לחשב מספרי פיבונאצ'י, אני יכול עם רקורסיה לעשות:

def Fibonacci(n):
if (n<=1):
return n;
return Fibonacci(n-1)+Fibonacci(n-2);

ובשיטה איטרטיבית:

def Fibonacci(n):
if(n<=1):
return n
prev=1
current=1
next=1
for i in range(2,n):
next=prev+current
prev=current
current=next
return next

בדר"כ השיטה האיטרטיבית הרבה יותר יעילה.


בכל מקרה זה לא אמור לשנות לך יותר מדי בעולם האמיתי - אם יש לך כמה דרכים להגיע למשהו, אתה מגיע בדרך הכי יעילה, לא משנה איך קוראים לשיטה הזו.
 
למעלה