עבר עריכה לאחרונה בתאריך 02.01.03 בשעה 22:31
לבנות טבלאות מעקב זאת משימה טכנית לחלוטין
אין שום מחשבה בעניין, אתה רק צריך לזכור איפה אתה נמצא
מבחינת הcall-stack ואתה מסודר.כמות הקריאות פה לפונקציה היא לא עצומה ובפרוש אפשר לעקוב,
בעיקר משום שעומק הרקורסיה הוא לא יותר מ3.
הקריאה השלישית תמיד מסיימת מייד ואף פעם לא גוררת רקורסיה נוספת
כך שלמעשה הפיצול הוא רק לשניים.
פירוט הריצה:
bf(2,8) { 1f(4,7) { 1f(6,6) => 6 2f(5,5) => 5 3f(6,5) => 5 } =>5 2f(3,6) { 1f(5,5) => 5 2f(4,4) => 4 3f(5,4) => 4 }=>4 3f(5,4) => 4 } =>4
|
כפי שאתה רואה f נקראה 10 פעמים בלבד והחזירה את הממוצע פחות 1,
(אמרתי לעיל שמכיוון שאנו עובדים בשלמים האלגוריתם יכול לטעות עד ל1)
DRYICE