Más contenido relacionado
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
- 7. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•הלוח על אקראית מקונפיגורציה יתחיל המשחק,בהסתברות כאשרpכל
ובהסתברות חייה תהי משבצת1-pב באופן מתה תהיה משבצת כל"ת
משבצות בשאר
- 8. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•הלוח על אקראית מקונפיגורציה יתחיל המשחק,בהסתברות כאשרpכל
ובהסתברות חייה תהי משבצת1-pב באופן מתה תהיה משבצת כל"ת
משבצות בשאר
•הבא דור לחישוב המשחק חוקי:
•למשבצת אםחייהמ יותר יש-3הבא בדור מצפיפות תמות היא שכנים
•למשבצת אםחייהמ פחות יש-2הבא בדור בידור מחוסר תמות היא שכנים
•יש מתה למשבצת אם3תהיה היא הבא בדור אזי שכניםחייה
•של המצב המקרים בשארהמשבצתמשתנה לא
- 9. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•אותו נעדן ואז אלגוריתם של כללי מתיור נתחיל
- 10. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•אותו נעדן ואז אלגוריתם של כללי מתיור נתחיל
•חדש אקראי לוח נכין–דור0אותו ונצייר
- 11. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•אותו נעדן ואז אלגוריתם של כללי מתיור נתחיל
•חדש אקראי לוח נכין–דור0ונציירהלוח את
•נגמר לא שהמשחק עד,הבא לוח נחשב(הבא דור)אותו ונצייר
- 12. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•אותו נעדן ואז אלגוריתם של כללי מתיור נתחיל
•חדש אקראי לוח נכין–דור0הלוח את ונצייר
•עדנגמר לא שהמשחק,הבא לוח נחשב(הבא דור)אותו ונצייר
- 13. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•אותו נעדן ואז אלגוריתם של כללי מתיור נתחיל
•חדש אקראי לוח נכין–דור0הלוח את ונצייר
•עדנגמר לא שהמשחק,הבא לוח נחשב(הבא דור)אותו ונצייר
- 14. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•אותו נעדן ואז אלגוריתם של כללי מתיור נתחיל
•חדש אקראי לוח נכין–דור0,הלוח את נצייר
•נגמר לא שהמשחק עד,הבא לוח נחשב(הבא דור)אותו ונצייר
שתי לפחות לממש שנצטרך רואים אנו מכאן
פונקציות
- 15. משחק לוח לייצוג נתונים מבנה בחירת
•המשחק של הלוח את נציג שבעזרתו נתונים מבנה ולבחור לחשוב צריכים אנו:
•רשימה
•דו רשימהמימדית
•tuple
•מחרוזת
•מילון
•set
- 16. משחק לוח לייצוג נתונים מבנה בחירת
•המשחק של הלוח את נציג שבעזרתו נתונים מבנה ולבחור לחשוב צריכים אנו:
•רשימה
•דו רשימהמימדית
•tuple
•מחרוזת
•מילון
•set
•בעזרת הלוח את נציגמימדית דו רשימה,מספר פנימית רשימה כאשרiתציג
לוח של שורהמספרi
- 17. משחק לוח לייצוג נתונים מבנה בחירת
•המשחק של הלוח את נציג שבעזרתו נתונים מבנה ולבחור לחשוב צריכים אנו:
•רשימה
•דו רשימהמימדית
•tuple
•מחרוזת
•מילון
•set
•בעזרת הלוח את נציגמימדית דו רשימה,מספר פנימית רשימה כאשרiתציג
לוח של שורהמספרi
עם מימדית דו רשימה הגדרת
FALSEמשבצת בכל
- 18. משחק לוח לייצוג נתונים מבנה בחירתטריק
•הבא דור של לוח נבנה אנו כאשר,לבחון נצטרך משבצת כל עבור?שכנים
שלה
- 19. משחק לוח לייצוג נתונים מבנה בחירתטריק
•הבא דור של לוח נבנה אנו כאשר,לבחון נצטרך משבצת כל עבור8שכנים
שלה
- 20. משחק לוח לייצוג נתונים מבנה בחירתטריק
•הבא דור של לוח נבנה אנו כאשר,לבחון נצטרך משבצת כל עבור8שכנים
שלה
•בעיה יש אבל:
- 21. משחק לוח לייצוג נתונים מבנה בחירתטריק
•הבא דור של לוח נבנה אנו כאשר,לבחון נצטרך משבצת כל עבור8שכנים
שלה
•בעיה יש אבל:יש משבצת לכל לא8שכנים
- 22. משחק לוח לייצוג נתונים מבנה בחירתטריק
•הבא דור של לוח נבנה אנו כאשר,לבחון נצטרך משבצת כל עבור8שכנים
שלה
•בעיה יש אבל:יש משבצת לכל לא8שכנים
8
5
3
- 23. משחק לוח לייצוג נתונים מבנה בחירתטריק
•הבא דור של לוח נבנה אנו כאשר,לבחון נצטרך משבצת כל עבור8שכנים
שלה
•בעיה יש אבל:יש משבצת לכל לא8שכנים
•עלבטריק נעזר בפתרון הכלליות את לשבור לא מנתהבא:לוח לייצר במקום
בגודלn*nבגודל לוח נייצרn+2עלn+2החיצונית המעטפת כאשרתיהיכולה
False
8
8
8
- 24. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•אותו נעדן ואז אלגוריתם של כללי מתיור נתחיל
•חדש אקראי לוח נכין–דור0,הלוח את נצייר
•נגמר לא שהמשחק עד,הבא לוח נחשב(הבא דור)אותו ונצייר
- 25. GenerateNewBoard(n,p)
•מקבלת הפונקציהלוח של גודל–nמסוימת שמשבצת והסתברותחיהp
•מחזירה הפונקציהדו רשימה-בגודל ממידית(n+2)*(n+2)
•ערך בעלות הן חיצונית מעטפת של משבצות כל זו ברשימה כאשרFalse
•היא המשבצות משאר אחת וכלTrueבהסתברותpו-Falseבהסתברות1-p
- 26. GenerateNewBoard(n,p)
•מקבלת הפונקציהלוח של גודל–nחיה מסוימת שמשבצת והסתברותp
•מחזירה הפונקציהדו רשימה-בגודל ממידית(n+2)*(n+2)
•ערך בעלות הן חיצונית מעטפת של משבצות כל זו ברשימה כאשרFalse
•היא המשבצות משאר אחת וכלTrueבהסתברותpו-Falseבהסתברות1-p
- 27. GenerateNewBoard(n,p)
•מקבלת הפונקציהלוח של גודל–nחיה מסוימת שמשבצת והסתברותp
•מחזירה הפונקציהדו רשימה-בגודל ממידית(n+2)*(n+2)
•ערך בעלות הן חיצונית מעטפת של משבצות כל זו ברשימה כאשרFalse
•היא המשבצות משאר אחת וכלTrueבהסתברותpו-Falseבהסתברות1-p
- 28. GenerateNewBoard(n,p)
•מקבלת הפונקציהלוח של גודל–nחיה מסוימת שמשבצת והסתברותp
•מחזירה הפונקציהדו רשימה-בגודל ממידית(n+2)*(n+2)
•ערך בעלות הן חיצונית מעטפת של משבצות כל זו ברשימה כאשרFalse
•היא המשבצות משאר אחת וכלTrueבהסתברותpו-Falseבהסתברות1-p
- 32. בגודל סופי לוח על חיים משחקn*n
•מטרהסופי לוח על חיים משחק לממש היא שלנו
•אותו נעדן ואז אלגוריתם של כללי מתיור נתחיל
•חדש אקראי לוח נכין–דור0,הלוח את נצייר
•נגמר לא שהמשחק עד,הבא לוח נחשב(הבא דור)אותו ונצייר
סיימנו
- 36. GenerateNextBoard(Board)
•מקבלת הפונקציהמימדית דו רשימה:נוכחי דור שמייצג לוחומחזירה
מימדית דו רשימה:הבא דור שמייצג לוח
•אלגוריתם:
•עם חדשה מימדית דו רשימה נכיןFalseמקום בכל–הבא דור של לוח נשמור כאן
•ישן בלוח פנימית משבצת כל על נעבור,נשמור ואז למשבצת יש שכנים כמה נספור
של ערך מתאים במקום חדש בלוחהמשבצת:משחק כללי לפי מתה או חיה
שהגדרנו
- 37. GenerateNextBoard(Board)
•מקבלת הפונקציהמימדית דו רשימה:נוכחי דור שמייצג לוחומחזירה
מימדית דו רשימה:הבא דור שמייצג לוח
•אלגוריתם:
•עם חדשה מימדית דו רשימה נכיןFalseמקום בכל–הבא דור של לוח נשמור כאן
•ישן בלוח פנימית משבצת כל על נעבור,נשמור ואז למשבצת יש שכנים כמה נספור
של ערך מתאים במקום חדש בלוחהמשבצת:משחק כללי לפי מתה או חיה
שהגדרנו
- 38. GenerateNextBoard(Board)
•מקבלת הפונקציהמימדית דו רשימה:נוכחי דור שמייצג לוחומחזירה
מימדית דו רשימה:הבא דור שמייצג לוח
•אלגוריתם:
•עם חדשה מימדית דו רשימה נכיןFalseמקום בכל–הבא דור של לוח נשמור כאן
•ישן בלוח פנימית משבצת כל על נעבור,נשמור ואז למשבצת יש שכנים כמה נספור
של ערך מתאים במקום חדש בלוחהמשבצת:משחק כללי לפי מתה או חיה
שהגדרנו
- 39. GenerateNextBoard(Board)
•מקבלת הפונקציהמימדית דו רשימה:נוכחי דור שמייצג לוחומחזירה
מימדית דו רשימה:הבא דור שמייצג לוח
•אלגוריתם:
•עם חדשה מימדית דו רשימה נכיןFalseמקום בכל–הבא דור של לוח נשמור כאן
•ישן בלוח פנימית משבצת כל על נעבור,נשמור ואז למשבצת יש שכנים כמה נספור
של ערך מתאים במקום חדש בלוחהמשבצת:משחק כללי לפי מתה או חיה
שהגדרנו
- 45. CalcLiveNeigbours(Board,I,j)
•מקבלת הפונקציהשל וקואורדינטות המשחק של לוחמשבצת,הפונקציה
מחזירההמשבצת של חיים שכנים כמות
•אלגוריתם:
•מ אחד כל על נעבור-8מהם כמה ונספור המשבצת של שכניםחיים(על לעבור אפשר
של מנגנון בעזרת או מקוננת בלולאה או משבצת של השכנים(List Comprehension
- 50. השיעור של מטרה
בעיית להכירSelf-Avoiding random walk
אלגוריתם לפתחזו בעיה של לסימולציה
משבצות בעיר כלב של אקראי הילוך המסמלץ קוד לפתח
- 53. Self-Avoiding Random Walk
•היוםאנונכירבעיהשלה פתרון ידוע שלא(קיים לא גם הפתרון להיות יכול)
•נתוןלוחמשבצותבגדולn*n(עירמשבצות)
•קואורדינטות עם ממשבצת כלומר העיר מאמצע שלו טיול מתחל הכלבn/2*n/2
•כלצעדמ אחד אחיד אקראי באופן בוחר הכלב-4כיוונים(למעלה,למעטה,
שמולא,ימינה)זו במשבצת ביקר לא הוא שעדיין בתאי לשם וזז
•אסורלכלבלבקרבאותהמשבצתיותרמפעםאחד(כלומרהכלבזוכראיפה
הואהיה)
- 54. Self-Avoiding Random Walk
•היוםאנונכירבעיהשלה פתרון ידוע שלא(קיים לא גם הפתרון להיות יכול)
•נתוןלוחמשבצותבגדולn*n(עירמשבצות)
•קואורדינטות עם ממשבצת כלומר העיר מאמצע שלו טיול מתחל הכלבn/2*n/2
•כלצעדמ אחד אחיד אקראי באופן בוחר הכלב-4כיוונים(למעלה,למעטה,
שמולא,ימינה)זו במשבצת ביקר לא הוא שעדיין בתאי לשם וזז
•אסורלכלבלבקרבאותהמשבצתיותרמפעםאחד(כלומרהכלבזוכראיפההוא
היה)
•אזימ אחד ייתכן-2:
•העיר לשפת מגיע הכלב–ניצחון
•איןלכלבלאןלהתקדם-הפסד
- 55. Self-Avoiding Random Walk
•היוםאנונכירבעיהשלה פתרון ידוע שלא(קיים לא גם הפתרון להיות יכול)
•נתוןלוחמשבצותבגדולn*n(עירמשבצות)
•קואורדינטות עם ממשבצת כלומר העיר מאמצע שלו טיול מתחל הכלבn/2*n/2
•כלצעדמ אחד אחיד אקראי באופן בוחר הכלב-4כיוונים(למעלה,למעטה,
שמולא,ימינה)זו במשבצת ביקר לא הוא שעדיין בתאי לשם וזז
•אסורלכלבלבקרבאותהמשבצתיותרמפעםאחד(כלומרהכלבזוכראיפההוא
היה)
•אזימ אחד ייתכן-2:
•העיר לשפת מגיע הכלב–ניצחון
•איןלכלבלאןלהתקדם–הפסד
- 56. Self-Avoiding Random Walk
•היוםאנונכירבעיהשלה פתרון ידוע שלא(קיים לא גם הפתרון להיות יכול)
•נתוןלוחמשבצותבגדולn*n(עירמשבצות)
•קואורדינטות עם ממשבצת כלומר העיר מאמצע שלו טיול מתחל הכלבn/2*n/2
•כלצעדמ אחד אחיד אקראי באופן בוחר הכלב-4כיוונים(למעלה,למעטה,
שמולא,ימינה)זו במשבצת ביקר לא הוא שעדיין בתאי לשם וזז
•אסורלכלבלבקרבאותהמשבצתיותרמפעםאחד(כלומרהכלבזוכראיפההוא
היה)
•אזימ אחד ייתכן-2:
•העיר לשפת מגיע הכלב–ניצחון
•איןלכלבלאןלהתקדם–הפסד
- 61. תרגיל1
•בגודל בעיר כלב של אקראי הילוך שמסמלץ קוד ורושם אלגוריתם פתחn*n
•רעיוןשלאלגוריתם:
•לוח נבנה(מימדית דו רשימה)אותו ונצייר התחלתי מצב שמייצג
•עדנגמר לא שהטיול,אותו ונצייר הבא צעד של לוח נחשב
http://www.codeskulptor.org/#user43_rqCwbWFg85_1.py
- 62. תרגיל1
•בגודל בעיר כלב של אקראי הילוך שמסמלץ קוד ורושם אלגוריתם פתחn*n
•רעיוןשלאלגוריתם:
•לוח נבנה(מימדית דו רשימה)מצב שמייצג
אותו ונצייר התחלתי
•עדנגמר לא שהטיול,צעד של לוח נחשב
אותו ונצייר הבא
http://www.codeskulptor.org/#user43_rqCwbWFg85_1.py
- 63. תרגיל1
•בגודל בעיר כלב של אקראי הילוך שמסמלץ קוד ורושם אלגוריתם פתחn*n
•רעיוןשלאלגוריתם:
•לוח נבנה(מימדית דו רשימה)מצב שמייצג
אותו ונצייר התחלתי
•עדנגמר לא שהטיול,צעד של לוח נחשב
אותו ונצייר הבא
http://www.codeskulptor.org/#user43_rqCwbWFg85_1.py
- 69. תרגיל2
•מ שונים בגדלים מעיר לצאת כלב של הסתברות שמעריך קוד כתבn=5עד
n=121לכלnלבצע יש40000הסופיות התוצאות את ולהציג סימולציות
גרפית בצורה
- 72. מטרה
עם להתמודד איך ללמודתוכנה נפילתריצה בזמן
בפייתון חריגות של מנגנון ללמוד
בפייתון טעויות של שונים סוגים להכיר
- 74. תוכנה של ריצה בזמן אם יקרה מהתתרחשטעות
•מקרים ברוב טעות הודעת נקבל
- 76. בפייתון בקוד טעיות של שונים סוגים
סוגים מספר קייםטעויותבפייתון:
• Syntax error
• Semantic error Logic error
- 77. Syntax Error
•טעויות של הנפוצים מסוגים אחד
•חוקים לפי לא קוד כותבים אנו כאשר קוראת הטעות(דקדוק חוקי)פייתון של
- 79. Exceptions (Run Time Errors)
•סינטקס טעויות אין בקוד אם אפילו,נוספות טעויות להתגלות יכולים ריצה בזמן
•המתרחשות הטעויותנקראות ריצה בזמןחריגות(exception)
- 85. מסקנות
•התוכנה ריצה בזמן טעות יש כאשר"נופלת"טעות הודעת מקבל ומשתמש ועוצרת
"מוזרה"
•נעים לא כזה ניסיון
•מוזרה בצורה נופלת תוכנה כאשר אוהבים לא רגילים משתמשים
- 86. מסקנות
•התוכנה ריצה בזמן טעות יש כאשר"נופלת"טעות הודעת מקבל ומשתמש ועוצרת
"מוזרה"
•נעים לא כזה ניסיון
•מוזרה בצורה נופלת תוכנה כאשר אוהבים לא רגילים משתמשים
•של מנגנון קיים בפייתוןחריגותכאלו מקרים עם להתמודד המאפשר
- 89. בחריגות טיפולבפייתון
•חריגה שתקרה קטן לא סיכוי יש שבו קוד קטע שיש נניח(ממשתמש חוקי לא קלט,
קיים לא קובץ,ב חלוקה-0וכו')
•לנסות נוכל אזי"לתפוס"ולא שלנו קוד בעזרת בה ולטפל ריצה בזמן החריגה את
לתוכנה לתת"לפול"
•בפקודות נשתמש כך לשםtryו-except
- 91. מנגנון של עבודה עקרונות:try … except….
.1בין קודtryו-exceptמתבצע
.2שלב ביצוע בזמן אם(1)של הבלוקים כל אזי טעות איןexceptמתבצעים לא
בלוק של קוד ומתבצעelse
.3של ביצוע בזמן טעות יש אם(1)ראשונה טעות יש שבה קוד משורת החל אזי
בלוק(1)של וקוד להתבצע מפסיקexceptמתבצע מתאים
.4exceptשלה בטיפוס חשיבות ללא כלשהי חריגה עבור מתבצע חריגה של שם ללא
.5finallyמתבצעתמיד,לא או חריגה הייתה האם תלות ללא
- 92. חריגות של שונים סוגים
.1NameErrorהמתאים השמות במרחב נמצא לא משתנה של שם כאשר מתרחשת
של חוקים לפיscope
- 97. עם עבודה בעת בחריגות טיפול במנגנון לשימוש דוגמא
קבצים
טוב יותר מה:2או לנפילה אפשרות עם קוד שורות8בחריגות טיפול עם שורות?
- 114. Tower of Hanoi simulation
https://www.mathsisfun.com/games/towerofhanoi.html
A B C
- 117. האנוי מגדלי בעיית לפתרון אלגוריתם
•הבעיה את שפותר אלגוריתם פתח
•לפתרון ניגש איך?
•פשוטים ממקרים נתחיל:
•אחד דיסק רק יש
- 118. האנוי מגדלי בעיית לפתרון אלגוריתם
•הבעיה את שפותר אלגוריתם פתח
•לפתרון ניגש איך?
•פשוטים ממקרים נתחיל:
•אחד דיסק רק יש
•פתרון:ממגדל הדיסק את נעבירAל-מגדלC
A B C
- 119. האנוי מגדלי בעיית לפתרון אלגוריתם
•הבעיה את שפותר אלגוריתם פתח
•לפתרון ניגש איך?
•פשוטים ממקרים נתחיל:
•דיסקים שתי יש
A B C
- 120. האנוי מגדלי בעיית לפתרון אלגוריתם
•הבעיה את שפותר אלגוריתם פתח
•לפתרון ניגש איך?
•פשוטים ממקרים נתחיל:
•דיסקים שתי יש:מ דיסק נעביר-Aל-Bמ דיסק ואז-Aל-Cמ דיסק ואז-Bל-C
A B C
- 121. האנוי מגדלי בעיית לפתרון אלגוריתם
•הבעיה את שפותר אלגוריתם פתח
•לפתרון ניגש איך?
•פשוטים ממקרים נתחיל:
•דיסקים שלושה:
A B C
- 122. האנוי מגדלי בעיית לפתרון אלגוריתם
•הבעיה את שפותר אלגוריתם פתח
•לפתרון ניגש איך?
•פשוטים ממקרים נתחיל:
•דיסקים שלושה:ל גדול דיסק להעביר חייבים-Cעליונים דיסקים משתי מגדל להעביר יש כך לשם
ל-B(פתרנו כבר כזו בעיה)מ הגדול הדיסק להעביר ואז-Aל-C(קל)שתי עם מגדל להעביר ואז
מ דיסקים-Bל-A(פתרנו כבר כזו בעיה)
A B C
- 123. האנוי מגדלי בעיית לפתרון אלגוריתם
•הבעיה את שפותר אלגוריתם פתח
•לפתרון ניגש איך?
•פשוטים ממקרים נתחיל:
•דיסקים שלושה:ל גדול דיסק להעביר חייבים-Cדיסקים משתי מגדל להעביר יש כך לשם
ל עליונים-B(פתרנו כבר כזו בעיה)מ הגדול הדיסק להעביר ואז-Aל-C(קל)מגדל להעביר ואז
מ דיסקים שתי עם-Bל-A(פתרנו כבר כזו בעיה)
• Solve(3,a,b,c):
• Solve(2,a,c,b)
• Solve(1,a,b,c)
• Solve(2,b,a,c)
מקור יעד
מיקום
זמני
- 124. האנוי מגדלי בעיית לפתרון אלגוריתם
•הבעיה את שפותר אלגוריתם פתח
•לפתרון ניגש איך?
•פשוטים ממקרים נתחיל:
•4דיסקים
• Solve(4,a,b,c):
• Solve(3,a,c,b)
• Solve(1,a,b,c)
• Solve(3,b,a,c)
- 134. האוני מגדלי:סיבוכיות
עם בעיה עבור דיסקים נעביר אנו פעמים כמהNדיסקים?
ב נסמן-T(N)כאשר הדיסקים כל את להעביר מנת על לעשות שיש העברות כמות את
סה יש"כNדיסקים
אזי:
- 135. האוני מגדלי:סיבוכיות
עם בעיה עבור דיסקים נעביר אנו פעמים כמהNדיסקים?
ב נסמן-T(N)כאשר הדיסקים כל את להעביר מנת על לעשות שיש העברות כמות את
סה יש"כNדיסקים
אזי:
T(N)=T(N-1)+T(N-1)+1=2T(N-1)+1=2*(2*T(N-2)+1)=2*(2*(2*T(N-3)+1)+1)+1=
=2^3*T(N-3)+7=……2^(N-1)+2^(N-1)-1=2^N-1
עם בעיה לפתור נרצה אם ולכן64דיסקיםלעשות נצטרך2^64-1פעולות,כל כאשר
לחכות נצטרך אחד שניה לוקחת פעולה584942417355שנים–העולם סוף עד
- 140. דינמי תכנות
•ספירה או אופטימיזציה מבעיות חלק לפתור המאפשרת שיטה היא דינמי תכנות
•חזקה די שני מצעד פשוטה יחסית אחד מצעד שיטה
- 141. דינמי תכנות
•ספירה או אופטימיזציה מבעיות חלק לפתור המאפשרת שיטה היא דינמי תכנות
•חזקה די שני מצעד פשוטה יחסית אחד מצעד שיטה
•אופטימיזציה בעייתאת למזער או למקסם במטרה לפתור רוצים שאנו בעיה היא
מטרה פונקציית:
•רווח מקסימום
•הוצאות מינימום
•ספירה בעיית:בעלי אובייקטים כמות לספור רוצים אנו שבה קומבינטורית בעיה
נתונה תכונה
- 142. דינמי תכנות
•כל לא לפתור מאפשרת דינמי תכנותבעיה,מיוחדות בעיות אלה
•מסוימת תכונה עם בעיות:הבעיות לתתי אופטימליות
- 143. עודף החזרת בעיית1
•ערך בעלות מטבעות קיימות מסוימת במדינה1,2,5
•עודף להחזיר ניתן אפשרויות בכמה לדעת רוצים אנוN,מטבעות בין הסדר כאשר
חשוב כן בעודף
- 144. עודף החזרת בעיית1
•ערך בעלות מטבעות קיימות מסוימת במדינה1,2,5
•עודף להחזיר ניתן אפשרויות בכמה לדעת רוצים אנוN,מטבעות בין הסדר כאשר
חשוב כן בעודף
•פתרון:
- 145. עודף החזרת בעיית1
•ערך בעלות מטבעות קיימות מסוימת במדינה1,2,5
•עודף להחזיר ניתן אפשרויות בכמה לדעת רוצים אנוN,מטבעות בין הסדר כאשר
חשוב כן בעודף
•פתרון:
•פרטיים ממקרים נתחיל
•להחזיר ניתן אפשרויות בכמה0,1,2,3,4,5,6?
- 146. עודף החזרת בעיית1
•ערך בעלות מטבעות קיימות מסוימת במדינה1,2,5
•עודף להחזיר ניתן אפשרויות בכמה לדעת רוצים אנוN,מטבעות בין הסדר כאשר
חשוב כן בעודף
•פתרון:
•פרטיים ממקרים נתחיל
•להחזיר ניתן אפשרויות בכמה0,1,2,3,4,5,6?
0 1 2 3 4 5 6
- 147. עודף החזרת בעיית1
•ערך בעלות מטבעות קיימות מסוימת במדינה1,2,5
•עודף להחזיר ניתן אפשרויות בכמה לדעת רוצים אנוN,מטבעות בין הסדר כאשר
חשוב כן בעודף
•פתרון:
•פרטיים ממקרים נתחיל
•להחזיר ניתן אפשרויות בכמה0,1,2,3,4,5,6?
0 1 2 3 4 5 6
1 1 2 3 5 9 15
- 148. עודף החזרת בעיית1
•ערך בעלות מטבעות קיימות מסוימת במדינה1,2,5
•עודף להחזיר ניתן אפשרויות בכמה לדעת רוצים אנוN,מטבעות בין הסדר כאשר
חשוב כן בעודף
•פתרון:
•נסמםב-F(N)עודף להחזיר ניתן שבעזרתן האפשרויות כמות אתN
•את לחשב איך לדעת שלנו מטרהF(N)
- 149. עודף החזרת בעיית1
•ערך בעלות מטבעות קיימות מסוימת במדינה1,2,5
•עודף להחזיר ניתן אפשרויות בכמה לדעת רוצים אנוN,מטבעות בין הסדר כאשר
חשוב כן בעודף
•ב נסמם-F(N)עודף להחזיר ניתן שבעזרתן האפשרויות כמות אתN
•את לחשב איך לדעת שלנו מטרהF(N)
•עבור נוסחה לכתוב נתחילF(N),ש נניח-Nמ גדול-5,להחזיר אפשר איךעודףN?יש
ראשון ממטבע להתחיל,או להיות יכול ראשון מטבע1או2או5,אותו שנחזיר לאחר
העודף שאר להחזיר נצטרךF(N-1)אוF(N-2)אוF(N-5)בהתאמה
•נסיק מכאן(הסכום עקרון:)F(N)=F(N-1)+F(N-2)+F(N-5)עבורN>5
- 150. עודף החזרת בעיית1
•נסיק מכאן:
• F(N)=F(N-1)+F(N-2)+F(N-5) N>=5
• F(N)=F(N-1)+F(N-2) 5>N>=2
• F(1)=F(0)=1
•מקוצר בכתיב או:
• F(N)=F(N-1)+F(N-2)*I(N>=2)+F(N-5)*I(N>=5)
• F(0)=F)1(=1
- 151. עודף החזרת בעיית1
•מקוצר בכתיב או:
• F(N)=F(N-1)+F(N-2)*I(N>=2)+F(N-5)*I(N>=5)
• F(0)=F1=1
•הדגמה:
F(2)=F(1)+F(0)=2
F(3)=F(2)+F(1)=3
F(4)=F(3)+F(2)=5
F(5)=F(4)+F(3)+F(0)=9
F(6)=F(5)+F(4)+F(1)=15
- 152. עודף החזרת בעיית1
•הבעיה לפתרון אלגוריתם:
•אתחול:ריקה רשימה ניקחשבהנשמרשל חישוב התוצאות כל אתF(n),נגדיר
F[1]=F[0]=1
•איטרציות:לכלi=2,3,…,NנחשבF(i)שקיבלנו נוסחה לפי
•נחזירF(N)
- 158. עודף החזרת בעיית1
•אלגוריתם:
•אתחול:שבה ריקה רשימה ניקחFשל חישוב התוצאות כל את נשמרF(n),נגדיר
F[1]=F[0]=1
•איטרציות:לכלi=2,3,…,NנחשבF(i)שקיבלנו נוסחה לפי
•נחזירF(N)
http://www.codeskulptor.org/#user43_vpcANXVCOx_0.py
- 159. הכללה עודף החזרת בעיית
•הבעיה את נפתור כעתעודף החזרת של כללית
•אלגוריתם:
•אתחול:שבה ריקה רשימה ניקחFשל חישוב התוצאות כל את נשמרF(n),נגדיר
F[1]=F[0]=1
•איטרציות:לכלi=2,3,…,NנחשבF(i)שקיבלנו נוסחה לפי
•נחזירF(N)
- 161. עודף החזרת בעיית2
•מטבעות קיימות מסוימת במדינהבעליערך1,2,5
•עודף להחזיר כדי שצריך מטבעות של מינימלית כמות היא מה לדעת רוצים אנוN
- 162. עודף החזרת בעיית2
•מטבעות קיימות מסוימת במדינהבעליערך1,2,5
•עודף להחזיר כדי שצריך מטבעות של מינימלית כמות היא מה לדעת רוצים אנוN
•פתרון:
•פרטים ממקרים נתחיל
•להחזיר כדי שצריך מטבעות של מינימלית כמות מהי:0,1,2,3,4,5,6?
0 1 2 3 4 5 6
- 163. עודף החזרת בעיית2
•מטבעות קיימות מסוימת במדינהבעליערך1,2,5
•עודף להחזיר כדי שצריך מטבעות של מינימלית כמות היא מה לדעת רוצים אנוN
•פתרון:
•פרטים ממקרים נתחיל
•להחזיר כדי שצריך מטבעות של מינימלית כמות מהי:0,1,2,3,4,5,6?
0 1 2 3 4 5 6
1 1 1 2 2 1 2
- 164. עודף החזרת בעיית2
•מטבעות קיימות מסוימת במדינהבעליערך1,2,5
•עודף להחזיר כדי שצריך מטבעות של מינימלית כמות היא מה לדעת רוצים אנוN
•כללית נוסחה לקבל ננסה:
- 165. עודף החזרת בעיית2
•מטבעות קיימות מסוימת במדינהבעליערך1,2,5
•עודף להחזיר כדי שצריך מטבעות של מינימלית כמות היא מה לדעת רוצים אנוN
•כללית נוסחה לקבל ננסה:
•עודף להחזיר עלינו כאשרNלבחור צריכים אנומאיזהלהתחיל מטבע:1,2,או5
•ממטבע נתחיל אם5,כמות אזישצריך המינימלית המטבעותהיא1+F(N-5),אם
ממטבע נתחיל2היא שצריך מטבעות של המינימלית כמות אזי,1+F(N-2)נתחיל ואם
ממטבע1אזי:1+F(N-1)
- 166. עודף החזרת בעיית2
•מטבעות קיימות מסוימת במדינהבעליערך1,2,5
•עודף להחזיר כדי שצריך מטבעות של מינימלית כמות היא מה לדעת רוצים אנוN
•כללית נוסחה לקבל ננסה:
•עודף להחזיר עלינו כאשרNלבחור צריכים אנומאיזהלהתחיל מטבע:1,2,או5
•ממטבע נתחיל אם5,כמות אזישצריך המינימלית המטבעותהיא1+F(N-5),אם
ממטבע נתחיל2היא שצריך מטבעות של המינימלית כמות אזי,1+F(N-2)נתחיל ואם
ממטבע1אזי:1+F(N-1)
•איזומתוך אפשרות3נבחר?זאתשתיתןמטבעות של מינימום,כלומר
F(N)=min[ 1+F[N-1],1+F[N-2],1+F[N-5]]
- 167. עודף החזרת בעיית2
•ערך בעלות מטבעות קיימות מסוימת במדינה1,2,5
•עודף להחזיר כדי שצריך מטבעות של מינימלית כמות היא מה לדעת רוצים אנוN
•אלגוריתם:
•F(0)=0
•לכלi=1,2,…NנחשבF(N)שקיבלנו הנוסחאות בעזרת
•נחזירF(N)
F(N)=min[ 1+F[N-1],1+F[N-2],1+F[N-5]]:N>=5
F(N)=min[ 1+F[N-1],1+F[N-2]]:5>N>=2
F(N)=1+F[N-1]:N>=1
- 171. מטרה
ב דיבאגינג לעשות איך ללמוד-Spyder
בקוד טעויות ולתקן לגלות המאפשר עזר כלי ללמוד-דיבאגינג
ב לשימוש דוגמאות לראות-Spyder
- 172. Debugging
•אחרונה בהרצאה למדנו ריצה זמן טעויות לגילוי מהדרכים אחד–של במנגנון שימוש
חריגות
•עזר בכלי שימוש היא נוספת דרך–debuggerהמאפשר"לצפות"בזמן מחשב בתוך
טעויות ולגלות קוד של ביצוע
•בעזרתdebuggerשלנו קוד לבצע נוכלשורהשורהבזיכרון קורא מה ולראות
המחשב,ורצות נקראות הפונקציות ואיך משתנים של ערכים הם מה
•דומה זו הגישהלדרךשלVIZUALIZATIONעבור שלמדנוCodeSculptor
- 186. Debugging example 1
•פשוטה מדוגמא נתחיל:עצרת חישוב
•בעזרת לסיכוםstepשורה קוד על לעבור נוכלשורה
•אבלstepהפונקציה לתוך להיכנס מאפשר לא
•שלה עבודה בזמן הפונקציה לתוך להיכנס צורך יש אם נעשה מה?
•ב נעזר-step into
- 197. Debugging example 3
•הבא בקוד בעיה מה?
•ב נבדוק-debugger
•קיים שלא איבר למחוק ניסיון
•מסקנה:רשימה לשנות כדאי לאאיטרציה של כערך זמן באותו בו שמשתמשים מילון
•ומוזרות צפויות לא לתופעות להביא או התוכנה את לשבור יכול זה
- 198. Break Point
•שורה כל של ריצה בתוצאת לצפות רוצים לא פשוט אנו או ארוך שלנו קוד אם,אפשר
של במנגנון להשתמש"עצירה נקודת"
•נסמןל-Spyderש נרצה שאנו איפה בקוד החשוב המקום את-Spyderאת יעצור
קוד לביצוע לעבור לנו ויאפשר קוד של הביצוע:שורהשורה
- 199. Break Point
•שורה כל של ריצה בתוצאת לצפות רוצים לא פשוט אנו או ארוך קוד אם,אפשר
של במנגנון להשתמש"עצירה נקודת",
•ל נסמן-Spyderש נרצה שאנו איפה בקוד החשוב המקום את-Spyderאת יעצור
קוד לביצוע לעבור לנו ויאפשר קוד של הביצוע:שורהשורה
- 200. Break Point
•שורה כל של ריצה בתוצאת לצפות רוצים לא פשוט אנו או ארוך קוד אם,אפשר
של במנגנון להשתמש"עצירה נקודת"
•נסמןל-Spyderש נרצה שאנו איפה בקוד החשוב המקום את-Spyderאת יעצור
קוד לביצוע לעבור לנו ויאפשר קוד של הביצוע:שורהשורה
• Debug->continue->continue
- 201. סיכום
•ב להשתמש נוכל-DebuggerשלSpyderטעויות לגלות נצטרך כשאר
•בעזרתdebuggerמשתנים של ערכים על משפיעה קוד שורת כל איך לראות נוכל
•לא או ונכון צפוי השינוי האם?
•אותה ולתקן בקוד טעות יש איפה להבין נוכל
•Debuggerטעויות לחפש המאפשר היחידי כלי לא הוא
•קיימיםגםבקורס אותם נלמד שלא אחרים כלים
- 204. זהב משחק
•הבא במחשק נסתכל:
•שלו הדרך בהתחלת נמצא אדם בן
•בגודל צעד לעשות יכול הוא פעם כל1או3,שם שנמצא פרס ומקבל במשבצת נכנס הוא ואז
•המטרההיא אדם בן שללהגיעעם אחרונה למשבצתמקסימוםמקבל שהוא הפרסים סכום של
בדרך
1 -1 2 -1 -1 2 1 3 4 1
- 205. זהב משחק
•הבא במחשק נסתכל:
•שלו הדרך בהתחלת נמצא אדם בן
•בגודל צעד לעשות יכול הוא פעם כל1או3שם שנמצא פרס ומקבל במשבצת נכנס הוא ואז
•עם אחרונה למשבצת לעבור היא אדם בן של מטרהמקסימוםמקבל שהוא הפרסים סכום של
בדרך
•הבאות משבצות הולך אדם בן אם למשל:3-6-7-10פרס יקבל הוא:2+2+1+1=6
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 206. זהב משחק
•הבא במחשק נסתכל:
•שלו הדרך בהתחלת נמצא אדם בן
•בגודל צעד לעשות יכול הוא פעם כל1או3שם שנמצא פרס ומקבל במשבצת נכנס הוא ואז
•עם אחרונה למשבצת לעבור היא אדם בן של מטרהמקסימוםמקבל שהוא הפרסים סכום של
בדרך
•הבאות משבצות הולך אדם בן אם למשל:3-6-7-10פרס יקבל הוא:2+2+1+1=6
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
הוא מהלקבל יכול שהוא המרבי סכום
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 207. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
הוא מהלקבל יכול שהוא המרבי סכום
•מהגדרות הפתרון את נתחיל:ב נסמן-F[i]הערך אתהטיולסכום עםהמרבי,כאשר
מנקודה מתחיל הטיולiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[?]
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 208. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-F[i]הטיול כאשר המרבי סכום עם המסלול הערך את
מנקודה מתחילiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[0],כסף נסמן בנוסף
במשבצת שישjב-a[j]
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 209. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-F[i]הטיול כאשר המרבי סכום עם המסלול הערך את
מנקודה מתחילiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[0],כסף נסמן בנוסף
במשבצת שישjב-a[j].
•מהסוף השאלה את לפתור נתחיל:
•F[N]=?
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 210. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-F[i]הטיול כאשר המרבי סכום עם המסלול הערך את
מנקודה מתחילiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[0],כסף נסמן בנוסף
במשבצת שישjב-a[j].
•מהסוף השאלה את לפתור נתחיל:
•F[N]=a[N]
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 211. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-F[i]הטיול כאשר המרבי סכום עם המסלול הערך את
מנקודה מתחילiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[0],כסף נסמן בנוסף
במשבצת שישjב-a[j].
•מהסוף השאלה את לפתור נתחיל:
•F[N]=a[N]
•F[N-1]=?+?
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 212. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-F[i]הטיול כאשר המרבי סכום עם המסלול הערך את
מנקודה מתחילiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[0],כסף נסמן בנוסף
במשבצת שישjב-a[j].
•מהסוף השאלה את לפתור נתחיל:
•F[N]=a[N]
•F[N-1]=a[N-1]+F[N]
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 213. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-F[i]הטיול כאשר המרבי סכום עם המסלול הערך את
מנקודה מתחילiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[0],כסף נסמן בנוסף
במשבצת שישjב-a[j].
•מהסוף השאלה את לפתור נתחיל:
•F[N]=a[N]
•F[N-1]=a[N-1]+F[N]
•F[N-2]=?+?
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 214. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-F[i]הטיול כאשר המרבי סכום עם המסלול הערך את
מנקודה מתחילiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[0],כסף נסמן בנוסף
במשבצת שישjב-a[j].
•מהסוף השאלה את לפתור נתחיל:
•F[N]=a[N]
•F[N-1]=a[N-1]+F[N]
•F[N-2]=a[N-2]+F[N-1]
1 -1 2 -1 -1 2 1 3 4 1
1 2 3 4 5 6 7 8 9 10
- 215. זהב משחק
•המטרההוא לדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום
•מהגדרות פתרון נתחיל:ב נסמן-F[i]הטיול כאשר המרבי סכום עם המסלול הערך את
מנקודה מתחילiבנקודה ומסתייםN.לחשב שלנו המטרה אזיF[0],שיש כסף נסמן בנוסף
במשבצתjב-a[j].
•מהסוף השאלה את לפתור נתחיל:
•F[N]=a[N]
•F[N-1]=a[N-1]+F[N]
•F[N-2]=a[N-2]+F[N-1]
•F[N-3]=a[n-3]+max(F[N],F[N-2])
•נקבל כללי ובאופן:F[i]=a[i]+max(F[[i+3],F[i+1])
•התחלה תנאי:F[N]=A[N]