יש לי שאלה...

יקח יותר מדי זמן למי ?

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

galh

New member
לפי החתימה אתה לומד בטכניון, לא?

את MarProg אתה מכיר?
 
כן

אני מרכיב בה מערכת, אני מניח שהיא גם עוברת סתם על כל האפשרויות, ולמען האמת מאוד מהר.. נראה כמו תוכנה טיפוסית בVB, רק שבVB אי אפשר לעשות BACKTRACKING
 

andav

New member
סליחה,אבל מה הכוונה ל- back trackin

back tracking ,אפשר הסבר קצר, או לינק? תודה רבה.
 
אוקי

הכוונה מאוד פשוטה, יש לך כללים לסדר משהוא, לא משנה מה. אתה מתחיל לפתח עץ של אפשרויות, כל פעם שאתה מוסיף עוד חלק, אתה בודק אם זה מתאים לכללים שלך, אם כן אתה ממשיך, אם לא אתה מקצץ את כל הענפים שיצאו מהחלק הזה של העץ. לדוגמא (תרגיל שהרגע המצאתי) : "הדפס את כל המספרים בגודל 6 ספרות שכוללים רק את הספרות 1 2 ו3, וככה שסכום הספרות במספר יהיה קטן מ14" עכשיו מה תעשה, תעבור על כל האפשרויות, וכל פעם שאתה מוסיף ספרה את בודק אם לא עברת את ה14. איך עוברים על כל האפשרויות ? רקורסיה ! ניסיון להסבר : אתה מציב אחד בספרה הראשונה, נכנס פנימה. אתה מציב שתיים בספרה הראשונה, נכנס פנימה. אתה מציב שלוש בספרה הראשונה, נכנס פנימה. כל פעם שאתה נכנס פנימה אתה מעביר איזה פרמטר שאומר לאן להציב את המספר הבא. וככה עם מערך אחד של 6 מספרים, ורקורסיה בעומק 6, אתה עובר על כל האפשרויות, ולפני כל כניסה פנימה, אתה בודק אם סכום הספרות עד כה קטן מ14. *נכנס פנימה=מבצע קריאה רקורסיבית אני מקווה שהבנת משהוא מכל מה שאמרתי, כי אני לא הייתי מבין
 

andav

New member
אתה ממש חמוד ../images/Emo6.gif

תודה רבה, באמת קצת התקשיתי להבין עד הסוף ושמחתי על סוף הודעתך
. יש מצב לקפוץ לטכניון שתסביר לי?
 
ממ

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

(שאני חושב שתפשט לך את הבעיה)וב-XML תגדיר פורמט קבצים לקלט ולפלט. ה-UI יכתוב את הנתונים לקובץ קלט ויציג את התוצאה מקובץ פלט. האלגוריתם יהפוך קובץ קלט לקובץ פלט. (זה מאד יעזור לך עם ה-debugging) בשביל לחסוך לך הרבה עבוה שחורה (Parsing)כדאי לך שהקבצחם יהו בפורמט XML ותשמש ב-Xml Parser. (בהתחלה תצטרך קצת ללמוד XML אבל זה יחסוך לך זמן במשך... .
 
למעלה