שאלה בסיסית ברקורסיה

LiranViper

New member
שאלה בסיסית ברקורסיה

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

carlos22

New member
זה מבצע פעם אחת ..

האיבר הראשון או האחרון מוכפלים במנת הסדרה וכל תוצאה חדשה מוכפלת במנה עד שמגיעים לאיבר הראשון או האחרון תלוי איך סידרת את הנוסחה וכלל העצירה שלה.
 

EsMo

New member
תשובה

func(A, D, N) A * D ^ N A * D * D ^ (N-1) A * func(D,D,N-1)​
 

LiranViper

New member
תודה, אהבתי.. אבל איך אני עושה ש..

אהבתי את הרעיון שאתה מציב בפעמים הבאות את D בA.. אבל בכללי.. בלי קשר לתרגיל הספציפי הזה.. איך אני עושה ברקורסיה משהו שיפעל רק פעם אחת (בפעם האחרונה או בפעם הראשונה)?
 

carlos22

New member
לא ממש הבנתי

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