תכנות, רקורסיה, מערכים, מחרוזות, עצים בינאריים ורשימות מקושרות
hash_mod מתוך המחלקה hashtable שראינו בכיתה:self.hash_mod = lambda key: hash_func(key) % mhash_func, ציינו עבור כל מימוש האם הוא:math.log(x,b) מחזירה float המייצג (בקירוב) את הערך של .lambda x: x%10lambda x: random.randint(x)lambda x: 1lambda x: -1*xlambda x: int(math.log(x,2))GraphMinimalNeighbourPathIterator המממשת את הממשק Iterator ומייצגת איטראטור של מספרים בגרף לא מכוון .next() את הקודקוד הבא ב-"מסלול שכן מינימלי מ-".graph, מספר שלם nextVertex ושדה נוסף אותו עליכם להגדיר.graph וקודקוד vertex. יש להניח כי בגרף יש לפחות קודקוד אחד.hasNext().findNextVertex() המעדכנת את השדה nextVertex. קריאה לשיטה זו מתרחשת בעת קידום האיטרטור – בשיטה next().next().GraphBlackAndWhiteEdgesIterator המממשת את הממשק Iterator<Edge> ומתארת איטרטור שעובר על כל הקשתות בגרף G שהן קשתות לבנות-שחורות (ורק עליהן). לא מוגדר סדר מסויים לפיו האיטרטור מחזיר את הקשתות.graph, מערך בוליאני whiteVertices וקשת nextEdge.MysteryGraph (ראו נספח) ולה בנאי מעתיק המקבל פרמטר מטיפוס Graph (ראו נספח) ויוצר גרף בעל אותו מספר קודקודים וקשתות.graph וקבוצת קודקודים לבנים whiteVertices. יש להניח כי בגרף יש לפחות קודקוד אחד וכי כל קודקוד שאינו לבן הוא שחור.hasNext().findNextEdge המעדכנת את השדה nextEdge.next().routes בגודל המייצגת את כל המסלולים הקיימים. אם קיים מעבר ממדינה למדינה אזי routes[i][j] יהיה מחיר המעבר. אם לא קיים מעבר, routes[i][j] יהיה .| 0 | 200 | 300 | |
| 50 | 0 | 25 | |
| 150 | 0 | 0 |
| 0 | 200 | 0 | |
| 0 | 0 | 0 | |
| 0 | 100 | 0 |
routes, קוראת לפונקציה ומדפיסה למסך את המחיר. 0
/ \
0 0
/ \ / \
1 1 1 1
/
0
mat המכיל מספרים שלמים. נסמן את מספר השורות והעמודות במערך ב- . המספרים ב- mat הם חיוביים ממש בלבד (ללא אפסים).mat המלא במספרים שלמים, חיוביים ממש בלבד, ומחזירה את ערכו של המספר המינימלי מבין המספרים המקסימלים בכל המסלולים האפשריים.B = 0 1 1 3 4 2 A = 0 1 1 2 3 4
[0][0] -> [0][1] -> [1][1][0][0] -> [1][0] -> [1][1]D = 4 5 8 2 3 12 16 7 13 1 10 14 15 11 9 6 C = 4 5 8 2 3 12 7 16 13 1 10 14 15 11 9 6
[1][3] שבו יש ואת [1][2] שבו יש (זה המערך ), המספר שיוחזר יהיה , שהוא המקסימום במסלול המסומן. שימו לב ש- הוא המקסימום גם במסלול הזה: [0][0] -> [0][1] -> [1][1] -> [1][2] -> [2][2] -> [2][3] -> [3][3]D = 4 1 9 3 25 24 23 2 21 5 13 12 15 16 22 17 11 18 19 20 10 14 8 7 6 C = 4 1 9 3 25 24 23 22 21 5 13 12 15 16 14 17 11 18 19 20 10 2 8 7 6
[0][0] -> [0][1] -> [0][2] -> [0][3] -> [1][3] -> [3][2] -> [3][3] -> [3][4] -> [4][4][0][0] -> [0][1] -> [0][2] -> [0][3] -> [1][3] -> [3][2] -> [2][2] -> [2][3] -> [2][4] -> [3][4] -> [4][4]Math.max ו- Math.min מהמחלקה Math וכן בקבועים Integer.MAX_VALUE, Integer.MIn_VALUE מהמחלקה Integer.res[1] + res[2] == 1res[1] + res[2] > 0.2res[4] <= res[3](res[0] == res[4]) or (res[4] == res[3])שאלות תרגול במבוא למדעי המחשב בנושא גרפים ממבחנים של האוניברסיטה הפתוחה, אוניברסיטת תל אביב, אוניברסיטת בר-אילן, הטכניון. השאלות ממוינות לפי רמת קושי, עם פתרונות לבדיקה עצמית - כך שניתן ללמוד מטעויות ולהבין את דרך הפתרון לפני הבחינה. ניתן לאתר שאלות חוזרות ולהריץ מבחני סימולציה ממוקדים בנושא גרפים.