לסבתא סמית יש תפוחים במשקלים הבאים (בגרמים):
{4, 97, 357, 29, 22, 7, 14, 377, 1, 80, 331, 2, 320, 401, 258}.
יש לה גם משקל חשמלי, שהיא יכולה לשים עליו תפוחים (המשקל מספיק גדול גם כדי לשים את כל התפוחים עליו), והמשקל מראה על הצג את המשקל הכולל של התפוחים שעליו, בגרמים. מה המספר החיובי השלם הקטן ביותר שלא יכול להיות מוצג על המשקל של סבתא סמית? (או במילים אחרות – שלא יכול להווצר על ידי חיבור של משקלים של תפוחים שיש לה)
רמז #1:
מיינו את המספרים לפי הסדר
רמז #2:
עברו על הרשימה הממויינת לפי הסדר, ובדקו בכל שלב מה המספר הקטן ביותר שאי אפשר ליצור עם התפוחים שעברתם עליהם עד כה
פתרון:
257.
אם נמיין את הרשימה בסדר עולה, נקבל:1, 2, 4, 7, 14, 22, 29, 80, 97, 258, 320, 331, 357, 377, 401
עם התפוח הראשון אפשר ליצור את המשקל 1. עם השני אפשר את 2, וביחד עם הראשון גם את 3.
כשמתווסף התפוח השלישי במשקל 4, אפשר ליצור איתו את 4, ואפשר גם לחבר אותו לכל משקל שהצלחנו ליצור עם התפוחים שכבר עברנו עליהם (1-3), ולכן אפשר ליצור את כל המשקלים עד 7.
התפוח הבא שוקל 7 ואפשר לצרף אותו שוב לכל משקל שכבר הצלחנו ליצור, ולכן הוא "מאריך" את רצף המשקלים שאנחנו יכולים ליצור עד 14. התפוח הבא שוקל 14 אז אפשר ליצור עד כה את כל המשקלים עד 28, ואז +22 = 50, ואז +29 = 79, ואז +80 = 159, ואז +97 = 256. התפוח הבא שוקל 258, אבל עם התפוחים עד אליו הצלחנו ליצור רק את המשקלים עד 256, לכן אי אפשר ליצור את 257 (התפוחים ממויינים בסדר עולה ושאר התפוחים כבדים יותר).לכן, 257 הוא המשקל השלם החיובי הקטן ביותר שאי אפשר ליצור. הערה: שאלה זו ממחישה את העקרון של חשיבה אלגוריתמית! למרות שבשאלה לא התבקשנו לכתוב אלגוריתם, היא מצריכה לחשוב על אלגוריתם ולבצע אותו.
בעמודי ההסבר על שלבי המיון אנחנו ממחישים באמצעות שאלה זו את ההבדל בין השלבים 😊