עבור לתוכן

עזרה בפתירת בעייה על ידי רקורסיה

Featured Replies

פורסם

החידה: יש 3 כוסות. אחת מכילה 8 ליטר. שניה 5 ליטר. שלישית 3 ליטר.

הכוס הראשונה מלאה ב8 ל' ושאר הכוסות ריקות.

על ידי מזיגות בין הכוסות צריך להגיע למצב בו יהיו 4 ליטר, 4 ליטר ו-0 ליטר.

עכשיו אני צריך ב-C++ לתת את עץ הפיתרונות (עץ החלטה) של אופציות המזיגה (מבלי לחזור על מצב מסויים פעמיים)

איך אני עושה זאת ברקורסה?

פורסם

כמה פרמטרים הפונ שלך יכולה לקבל?

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

כל פעם תבדוק אם קיבלת מה שרצית.

שאלה דיי טפשית מכיוון שאפשר לבדוק אם 2 כוסות מסויימות יכולות להכיל 4L(ולא צריך רקורסיה).

אתה בטוח שרשמת את כל השאלה?

פורסם

וואלה זו השאלה שג'רמי איירונס נתן לברוס וויליס וסמואל ל. ג'קסון ב-"מת לחיות 3"

פורסם

בגלל שזה רקורסיה ואני מניח שאתה לא יכול למזוג ליטר אחד בכל פעם כל מה שעליך לבדוק זה את כל הענפים האפשריים. כלומר ללשפוך מכל כוס לכל כוס בשתי מגבלות:

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

2. שפכת מכוס א' לכוס ב' בשלב הבא אי אפשר להחזיר מכוס ב' ל- א' (גם זה לא בדיוק מדוייק, צריך מעט לחדד את זה, כי אם שפכת ליטר מכוס א' לכוס ב' אך עכשיו יש בכוס ב' 4 ליטר אז מותר לך להחזיר אותם - כלומר המגבלה לא להחזיר מכוס לכוס את אותה כמות המים).

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים