ערכתי לאחרונה בתאריך 03.11.03 בשעה 00:39 בברכה, the_jackass
יכולים להיות שני פתרונות לבעיה אחת
לדוגמא כדי להגיע ל-11 עם 2,3,9,8,1
גם 2+9 מתאים וגם 3+8 מתאים
עכשיו אני חשבתי על שיטה אחרת, הרבה פחות יעילה, שיכולה להביא מספר פתרונות אופטימלייםזה הולך ככה:
האלגוריתם יריץ את כל האפשרויות הקימות עד שהוא מגיע לסכום המבוקש, ויקבע את מספר המטבעות שהתקבל כמינימלי. (אם הרצף עבר את הסכום המבוקש, עוברים הלאה)
הוא שוב יריץ את כל האפשריות אך ברגע שמספר המטבעות שווה למספר המינימלי, הוא יפסיק את הרצף הספציפי הזה וימשיך לרצף הבא, עד שהוא לא מוצא מספר מינימלי קטן יותר, או שנגמרים הרצפים.
האלגוריתם זוכר את כל הרצפים שמתאים למספר המינימלי.
לדוגמא: (עם המספרים מלמעלה 1,2,3,9,8 והסכום 11)
אם המספר המינימלי נקבע כ-5 לסכום 2+2+2+2+3
אז אם אחרי זה האלגוריתם יגיע לרצף 1+1+1+1+1, הוא לא ימשיך לנסות להגיע ל-11, אלא יעבור לרצף הבא.
אם הוא יגיע לרצף 3+3+3+1+1 אז הוא ישמור אותו כרצף מתקבל (ביחד עם 2+2+2+2+3)
ואם הוא מגיע ל 3+3+3+2 אז המספר המינימלי נקבע כ-4
ומתחילים הכל מהתחלה
אני יודע שיש פה קצת בלגאן אז אני מקווה שהבנתם על מה אני מדבר.
שאלות/הצעות/תיקונים ושאר ירקות יתקבלו בברכה
ד"א
אין לי ידע רב בתיכנות (3 יחידות מחשבים
) ככה שאין לי מושג איך לישים את זה, ואני ישמח אם תגידו לי אם זה בכלל ניתן לישום.