More Related Content More from Igor Kleiner (20) תכנות מדעי פייתון: הרצאה 12: סיבוכיות3. חישובשורש:שיטתרפסון ניוטון
•דרכים במספר חיובי ממספר שורש לחשב אפשר
•רפסון ניוטון שיטת הנקראת איטרטיבית שיטה היא מהן אחת
•רקורסיה בעזרת אותה ונממש השיטה את נלמד היום
•ממספר שורש לחישוב אלגוריתםa
•התחלתי מניחוש נתחילx.
•עוד כלabs(x^2-a)מ גדול-epsilonל חדש ערך נחשב-xהבאה נוסחה בעזרת:x=1/2(x+a/x)
4. רפסון ניוטון ששיטת שורש חישוב
•דרכים במספר חיובי ממספר שורש לחשב אפשר
•רפסון ניוטון שיטת הנקראת איטרטיבית שיטה היא מהן אחד
•הרקורסיה בעזרת אותה ונממש השיטה את נלמד היום
•ממספר שורש לחישוב אלגוריתםa
•התחלתי מניחוש נתחילx.
•עוד כלabs(x^2-a)מ גדול-epsilonל חדש ערך נחשב-xהבאה נוסחה בעזרת:x=1/2(x+a/x)
http://www.codeskulptor.org/#user44_gVh7uI6o7fOJqq4.py
5. רפסון ניוטון ששיטת שורש חישוב
•דרכים במספר חיובי ממספר שורש לחשב אפשר
•רפסון ניוטון שיטת הנקראת איטרטיבית שיטה היא מהן אחד
•הרקורסיה בעזרת אותה ונממש השיטה את נלמד היום
•ממספר שורש לחישוב אלגוריתםA
•התחלתי מניחוש נתחילx.
•עוד כלabs(x^2-a)מ גדול-epsilonל חדש ערך נחשב-xהבאה נוסחה בעזרת:x=1/2(x+a/x)
http://www.codeskulptor.org/#user44_gVh7uI6o7fOJqq4.py
8. עודף החזרת
•עודף להחזיר אפשרויות כל עם רשימה שמחזירה רקורסיבית פונקציה כתבו
Nמטבעות בעזרת1,2,5
http://www.codeskulptor.org/#user44_4d4p0BUt7OJH0YZ_0.py
9. עודף החזרת
•עודף להחזיר אפשרויות כל עם רשימה שמחזירה רקורסיבית פונקציה כתבו
Nמטבעות בעזרת1,2,5
http://www.codeskulptor.org/#user44_4d4p0BUt7OJH0YZ_0.py
11. מחרוזת של אורך
•אורך ומחזירה מחרוזת שמקבלת ורקורסיבית איטרטיבית פונקציות כתבו
המחרוזת של
http://www.codeskulptor.org/#user44_4d4p0BUt7OJH0YZ_1.py
16. ביותר הגדול המשותף המחלק חישוב
•הגדרה:ביותר הגדול המשותף המחלקחיובים שלמים מספרים שתי שלA
ו-Bאת גם שמחלק ביות הגדול שלם מספר הואAאת וגםBללאשארית:
•10,20-?
17. ביותר הגדול המשותף המחלק חישוב
•הגדרה:ביותר הגדול המשותף המחלקחיובים שלמים מספרים שתי שלA
ו-Bאת גם שמחלק ביות הגדול שלם מספר הואAאת וגםBללאשארית:
•10,20-?10
18. ביותר הגדול המשותף המחלק חישוב
•הגדרה:ביותר הגדול המשותף המחלקחיובים שלמים מספרים שתי שלA
ו-Bאת גם שמחלק ביות הגדול שלם מספר הואAאת וגםBללאשארית:
•10,20-?10
•11,13-?
19. ביותר הגדול המשותף המחלק חישוב
•הגדרה:ביותר הגדול המשותף המחלקחיובים שלמים מספרים שתי שלA
ו-Bאת גם שמחלק ביות הגדול שלם מספר הואAאת וגםBללאשארית:
•10,20-?10
•11,13-?1
20. ביותר הגדול המשותף המחלק חישוב
•הגדרה:ביותר הגדול המשותף המחלקחיובים שלמים מספרים שתי שלA
ו-Bאת גם שמחלק ביות הגדול שלם מספר הואAאת וגםBללאשארית:
•10,20-?10
•11,13-?1
•27,15-?
21. ביותר הגדול המשותף המחלק חישוב
•הגדרה:ביותר הגדול המשותף המחלקחיובים שלמים מספרים שתי שלA
ו-Bאת גם שמחלק ביות הגדול שלם מספר הואAאת וגםBללאשארית:
•10,20-?10
•11,13-?1
•27,15-?5
22. ביותר הגדול המשותף המחלק חישוב
•הגדרה:ביותר הגדול המשותף המחלקחיובים שלמים מספרים שתי שלA
ו-Bאת גם שמחלק ביות הגדול שלם מספר הואAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אפשר איך?
23. ביותר הגדול המשותף המחלק חישוב
•הגדרה:בגדול המחלקביותרחיובים שלמים מספרים שתי שלAו-Bהוא
את גם שמחלק ביות הגדול שלם מספרAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אפשר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
•האלגוריתם:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
24. ביותר הגדול המשותף המחלק חישוב
•הגדרה:חיובים שלמים מספרים שתי של ביות בגדול המחלקAו-Bהוא
את גם שמחלק ביות הגדול שלם מספרAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אשפר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
דוגמא:
gcd(20,5)=gcd(?,?)
25. ביותר הגדול המשותף המחלק חישוב
•הגדרה:חיובים שלמים מספרים שתי של ביות בגדול המחלקAו-Bהוא
את גם שמחלק ביות הגדול שלם מספרAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אשפר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
דוגמא:
gcd(20,5)=gcd(5,0)=?
26. ביותר הגדול המשותף המחלק חישוב
•הגדרה:חיובים שלמים מספרים שתי של ביות בגדול המחלקAו-Bהוא
את גם שמחלק ביות הגדול שלם מספרAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אשפר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
דוגמא:
gcd(20,5)=gcd(5,0)=5
27. ביותר הגדול המשותף המחלק חישוב
•הגדרה:חיובים שלמים מספרים שתי של ביות בגדול המחלקAו-Bשלם מספר הוא
את גם שמחלק ביות הגדולAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אשפר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
דוגמא:
gcd(20,5)=gcd(5,0)=5
gcd(20,14)=gcd(14,6)=gcd(6,2)=gcd(2,0)=2
28. ביותר הגדול המשותף המחלק חישוב
•הגדרה:חיובים שלמים מספרים שתי של ביות בגדול המחלקAו-Bשלם מספר הוא
את גם שמחלק ביות הגדולAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אשפר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
דוגמא:
gcd(20,5)=gcd(5,0)=5
gcd(20,14)=gcd(14,6)=gcd(6,2)=gcd(2,0)=2
29. ביותר הגדול המשותף המחלק חישוב
•הגדרה:חיובים שלמים מספרים שתי של ביות בגדול המחלקAו-Bשלם מספר הוא
את גם שמחלק ביות הגדולAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אשפר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
דוגמא:
gcd(20,5)=gcd(5,0)=5
gcd(20,14)=gcd(14,6)=gcd(6,2)=gcd(2,0)=2
30. ביותר הגדול המשותף המחלק חישוב
•הגדרה:חיובים שלמים מספרים שתי של ביות בגדול המחלקAו-Bשלם מספר הוא
את גם שמחלק ביות הגדולAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אשפר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
דוגמא:
gcd(20,5)=gcd(5,0)=5
gcd(20,14)=gcd(14,6)=gcd(6,2)=gcd(2,0)=2
31. ביותר הגדול המשותף המחלק חישוב
•הגדרה:חיובים שלמים מספרים שתי של ביות בגדול המחלקAו-Bשלם מספר הוא
את גם שמחלק ביות הגדולAאת וגםBשארית ללא
•ביותר הגדול המחלק את למצוא אשפר איך?
•את למצוא אפשרGCDאלגוריתם בעזרתEuclid:
If q=0 then gcd(p,q)=p
If p>q then gcd(p,q)=gcd(q,p%q)
דוגמא:
gcd(20,5)=gcd(5,0)=5
gcd(20,14)=gcd(14,6)=gcd(6,2)=gcd(2,0)=2
45. פיבונאצ מספרי'י-שיפור
•כבר ראינו2פיבונאצ סדרת אברי עם רשימה שמחזירה לפונקציה מימושים'י
•יעיל לא רקורסיה בעזרת שחישוב ראינו
•פיבונאצ סידרת חישוב של הרקורסיבי המימוש את נשפר אנו היום'י
•הזה בחישוב בעיה מה?
מימושלאיעיל
46. פיבונאצ מספרי'י-שיפור
•כבר ראינו2פיבונאצ סדרת אברי עם רשימה שמחזירה לפונקציה מימושים'י
•יעיל לא רקורסיה בעזרת שחישוב ראינו
•פיבונאצ סידרת חישוב של הרקורסיבי המימוש את נשפר אנו היום'י
•הזה בחישוב בעיה מה?
•עבור רקורסיביות קריאות שכמות להראות אפשרNל שבווה בערך1.6^N
47. פיבונאצ מספרי'י-שיפור
•כבר ראינו2פיבונאצ סדרת אברי עם רשימה שמחזירה לפונקציה מימושים'י
•יעיל לא רקורסיה בעזרת שחישוב ראינו
•פיבונאצ סידרת חישוב של הרקורסיבי המימוש את נשפר אנו היום'י
•הזה בחישוב בעיה מה?
•עבור רקורסיביות קריאות שכמות להראות אפשרNל שבווה בערך1.6^N
•הבעיה:חוזרים חישובים היא–חוזרים חישובים את נשמור הבעיה את לפתור כדי
עזר ברשימת
48. פיבונאצ מספרי'י-שיפור
•כבר ראינו2פיבונאצ סדרת שמשחב לפונקציה מימושים'י
•יעיל לא רקורסיה בעזרת שחישוב ראינו
•פיבונאצ סידרת חישוב של הרקורסיבי המימוש את נשפר אנו היום'י
•הזה בחישוב בעיה מה?
•עבור רקורסיביות קריאות שכמות להראות אפשרNל שבווה בערך1.6^N
•הבעיה:חוזרים חישובים היא–חוזרים חישובים את נשמור הבעיה את לפתור כדי
עזר ברשימתFiblist=[]
50. זהב משחק
•הבא במחשק נסתכל:
•שלו הדרך בהתחלת נמצא אדם בן
•בגודל צעד לעשות יכול הוא פעם כל1או3ימינה,הוא ואזמבקרשנמצא פרס ומקבל במשבצת
בה
•עם אחרונה למשבצת להגיע היא אדם בן של המטרהמקסימוםמקבל שהוא הפרסים סכום של
בדרך
1 -1 2 -1 -1 2 1 3 4 1
51. זהב משחק
•הבא במחשק נסתכל:
•שלו הדרך בהתחלת נמצא אדם בן
•בגודל צעד לעשות יכול הוא פעם כל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
פרסים של ערכים
אינדקס
52. זהב משחק
•הבא במחשק נסתכל:
•שלו הדרך בהתחלת נמצא אדם בן
•בגודל צעד לעשות יכול הוא פעם כל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
פרסים של ערכים
אינדקס
53. זהב משחק
•המטרההוא מה לדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא
לקבל יכול שהוא פרסים של המרבי סכום
•נתחילמהגדרות הפתרון את:ב נסמן-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
54. זהב משחק
•המטרההוא מה לדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא
לקבל יכול שהוא פרסים של המרבי סכום
•מהגדרות הפתרון את נתחיל:ב נסמן-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
55. זהב משחק
•המטרההוא מה לדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא
לקבל יכול שהוא פרסים של המרבי סכום
•מהגדרות הפתרון את נתחיל:ב נסמן-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
56. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-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
57. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-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
58. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-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
59. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-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
60. זהב משחק
•המטרהלדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום הוא
•מהגדרות פתרון נתחיל:ב נסמן-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
61. זהב משחק
•המטרההוא לדעת אדם לבן שמאפשר הקוד את לכתוב ואז אלגוריתם לפתח היא שלנו
לקבל יכול שהוא המרבי סכום
•מהגדרות פתרון נתחיל:ב נסמן-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]
65. השיעור של מטרה
חדש נתונים מבנה ללמוד-קבוצה
ושימושיהם קבוצות של מתודות ללמוד
קפואות קבוצות ללמוד
66. השיעור של מטרה
•אוסף היא קבוצה(סדר אין)איברים של,יותר לא בקבוצה מופיע איבר כל כאשר
אחד מפעם
•לשינוי ניתן שלא מטיפוס להיות חייבים בקבוצה האיברים
67. השיעור של מטרה
•אוסף היא קבוצה(סדר אין)איברים של,אחד מפעם יותר לא מופיע איבר כל כאשר
•במתמטיקה שמגדירים בקבוצות למישוש ונוחה טבעית מאוד זו ההגדרה
81. מנגנון בעזרת קבוצה הגדרתשלSet
Comprehension
•של למנגנון בדומהListComprehensionקבוצות גם להגדיר ניתן(וגם
מילונים)
83. תרגיל:ברשימה שונות מילים כמות
•פונקציה כתבהמקבלתמחרוזות של רשימהומחזירהשונות מילים כמות
ברשימה
•אלגוריתם:
•לקבוצה אותה ונוסיף ברשימה מילה כל על נעבור
•קבוצה של גודל נחזיר
84. תרגיל:ברשימה שונות מילים כמות
•פונקציה כתבהמקבלתמחרוזות של רשימהומחזירהשונות מילים כמות
ברשימה
•אלגוריתם:
•לקבוצה אותה ונוסיף ברשימה מילה כל על נעבור
•קבוצה של גודל נחזיר
86. תרגיל:קבוצהברשימה שונות מילים
•רקורסיבית פונקציה כתבהמקבלתמחרוזות של רשימהומחזירההמילים כל קבוצת
ברשימה
•רקורסיבי אלגוריתם:
•תנאיעצירה:ריקה קבוצה נחזיר ריקה הרשימה אם
•ראשון איבר ללא רקורסיבית קראיה של לתוצאה ראשון איבר נוסיף
87. תרגיל:ברשימה שונות מילים כמות
•רקורסיבית פונקציה כתבהמקבלתמחרוזות של רשימהומחזירהכל קבוצת
ברשימה המילים
•רקורסיבי אלגוריתם:
•עצירה תנאי:ריקה קבוצה נחזיר ריקה הרשימה אם
•ראשון איבר ללא רקורסיבית קראיה של לתוצאה ראשון איבר נוסיף
90. תרגיל:קבוצתבקובץ שונות מילים
•פונקציה כתבוהמקבלתהקובץ של שםומחזירהבקובץ המילים כל קבוצת,
באורך מילים רק לקבוצה להוסיף יש כאשר4יותר או
•אלגוריתם:
•לקריאה קובץ נפתח
•באורך היא ואם בקובץ מילה כל על נעבור>3לקבוצה אותה נוסיף אז
•שהתקבלה קבוצה נחזיר
91. תרגיל:קבוצתבקובץ שונות מילים
•פונקציה כתבוהמקבלתהקובץ של שםומחזירהבקובץ המילים כל קבוצת,
באורך מילים רק לקבוצה להוסיף יש כאשר4יותר או
•אלגוריתם:
•לקריאה קובץ נפתח
•באורך היא ואם בקובץ מילה כל על נעבור>3לקבוצה אותה נוסיף אז
•שהתקבלה קבוצה נחזיר
92. תרגיל:קבוצתבקובץ שונות מילים
•פונקציה כתבוהמקבלתהקובץ של שםומחזירהבקובץ המילים כל קבוצת,
באורך מילים רק לקבוצה להוסיף יש כאשר4יותר או
•אלגוריתם:
•לקריאה קובץ נפתח
•באורך היא ואם בקובץ מילה כל על נעבור>3לקבוצה אותה נוסיף אז
•שהתקבלה קבוצה נחזיר
93. תרגיל:בקובץ שונות מילים כמות
•פונקציה כתבהמקבלתהקובץ של שםומחזירהבקובץ שונות מילים כמות,
באורך מילים רק סופרים כאשר4יותר או
•אלגוריתם:
•לקריאה קובץ נפתח
•באורך היא ואם בקובץ מילה כל על נעבור>3לקבוצה אותה נוסיף אז
•שהתקבלה קבוצה נחזיר
94. תרגיל:בקובץ שונות מילים כמות
•פונקציה כתבהמקבלתהקובץ של שםומחזירהבקובץ שונות מילים כמות,
באורך מילים רק סופרים כאשר4יותר או
•אלגוריתם:
•לקריאה קובץ נפתח
•באורך היא ואם בקובץ מילה כל על נעבור>3לקבוצה אותה נוסיף אז
•שהתקבלה קבוצה נחזיר
95. תרגיל:בקובץ שונות מילים כמות
•פונקציה כתבהמקבלתהקובץ של שםומחזירהבקובץ שונות מילים כמות,
באורך מילים רק סופרים כאשר4יותר או
•אלגוריתם:
•לקריאה קובץ נפתח
•באורך היא ואם בקובץ מילה כל על נעבור>3לקבוצה אותה נוסיף אז
•שהתקבלה קבוצה נחזיר
96. תרגיל:טקסט מקובץ אקראית מילה
•כתבפונקציההמקבלתהקובץ של שםומחזירהגדול בגודל אקראית מילה
מ-3בקובץ שונות המילים כל בין אחיד אקראי באופן הנבחרת
97. תרגיל:קבוצות בעזרת מימוש קופונים אסיפת
•פונקציה כתבהמקבלתשלם חיובי מספרNאסיפת תהליך ומסמלצת
שקנינו מעטפות כמות ומחזירה קופונים
100. מסכמת שאלה
•באורך שונות מילים כמה6מילה של מאותיות להרכיב ניתןMATHEMATICA
•סה"יש כ11אותיות:m,a,t,h,e,m,a,t,I,c,a
101. מסכמת שאלה
•באורך שונות מילים כמה6מילה של מאותיות להרכיב ניתןMATHEMATICA
•שאלה זאתקומבינטורית:כפל וכלל סכום בכלל נעזר
102. מסכמת שאלה
•באורך שונות מילים כמה6מילה של מאותיות להרכיב ניתןMATHEMATICA
•קומבינטורית שאלה:כפל וכלל סכום בכלל נעזר
2223212211311121111111111
29730
!2!2!2
!6
!2!3
!6
1
5
1
2
1
1
!2!2
!6
2
5
2
3
!3
!6
3
6
1
1
!2
!6
4
6
1
3
!6
6
7
103. מסכמת שאלה
•באורך שונות מילים כמה6מילה של מאותיות להרכיב ניתןMATHEMATICA
•קומבינטורית שאלה:כפל וכלל סכום בכלל נעזר
•טיפה פתרוןמורכב
•נעזרעצמינו את לבדוק כדי בפייתון
2223212211311121111111111
29730
!2!2!2
!6
!2!3
!6
1
5
1
2
1
1
!2!2
!6
2
5
2
3
!3
!6
3
6
1
1
!2
!6
4
6
1
3
!6
6
7
104. מסכמת שאלה
•באורך שונות מילים כמה6מילה של מאותיות להרכיב ניתןMATHEMATICA
•קומבינטורית שאלה:כפל וכלל סכום בכלל נעזר
•טיפה פתרוןמורכב
•נעזרעצמינו את לבדוק כדי בפייתון
•אלגוריתם:בגודל הפרמוטציות כל נייצר6אותם ונשמור המילה של מאותיות
בקבוצה,קבוצה של גודל נחזיר
2223212211311121111111111
29730
!2!2!2
!6
!2!3
!6
1
5
1
2
1
1
!2!2
!6
2
5
2
3
!3
!6
3
6
1
1
!2
!6
4
6
1
3
!6
6
7
105. מסכמת שאלה
•באורך שונות מילים כמה6מילה של מאותיות להרכיב ניתןMATHEMATICA
•קומבינטורית שאלה:כפל וכלל סכום בכלל נעזר
•מורכב טיפה פתרון,עצמינו את לבדוק כדי בפייתון נעזר
•אלגוריתם:בגודל הפרמוטציות כל נייצר6אותם ונשמור המילה של מאותיות
בקבוצה,קבוצה של גודל נחזיר
2223212211311121111111111
29730
!2!2!2
!6
!2!3
!6
1
5
1
2
1
1
!2!2
!6
2
5
2
3
!3
!6
3
6
1
1
!2
!6
4
6
1
3
!6
6
7
108. השיעור של מטרה
רקורסיבי מבנה עם ציורים לצייר איך ללמוד
רקורסיבי פתרון של הבנה לשפר
חדשים רקורסיביים ציורים לייצר ללמוד
113. H-TREE
•פשוטה מדוגמא נתחילH-Tree
•הבא באופן העץ את נגדיר:
•עצירה תנאיn=0דבר שום לצייר צריך לא
•רקורסיה צעדנציירHיחידה ריבוע באמצע+נצייר4Hפי קטנים יותר ים2,כך
של לקצה מחובר מהם אחד שכלHגדול,הHנצייר הקטנים יםבעזרת4קריאות
רקורסיביות
114. H-TREE
•פשוטה מדוגמא נתחילH-Tree
•הבא באופן העץ את נגדיר:
•עצירה תנאיn=0דבר שום לצייר צריך לא
•נצייר רקורסיה צעדHיחידה ריבוע באמצע+נצייר4Hפי קטנים יותר ים2כך
של לקצה מחובר מהם אחד שכלHגדול
115. H-TREE
•פשוטה מדוגמא נתחילH-Tree
•הבא באופן העץ את נגדיר:
•עצירה תנאיn=0דבר שום לצייר צריך לא
•נצייר רקורסיה צעדHיחידה ריבוע באמצע+נצייר4Hפי קטנים יותר ים2כך
של לקצה מחובר מהם אחד שכלHגדול
https://www.youtube.com/watch?v=KiZwX5iykdo
N=1 N=2 N=3
130. סיבוכיות-complexity
•היא ומאלגוריתמים שלנו מקוד ביותר החשובה הדרישהחוקי קלט שלכל
האלגוריתםתמידנכונה תשובה מחזיר
•ולתחזוקה להבנה קל יהי שלנו שהקוד רצינו גם בנוסף
•דרישתיעילותשעלינונדברהיוםהיאגםדרישהמאוד וחשובה קריטית
131. סיבוכיות-complexity
•היא ומאלגוריתמים שלנו מקוד ביותר החשובה הדרישהחוקי קלט שלכל
האלגוריתםתמידנכונה תשובה מחזיר
•ולתחזוקה להבנה קל יהי שלנו שהקוד רצינו גם בנוסף
•יעילות דרישתמאוד וחשובה קריטית דרישה גם היא היום נדבר שעלינו
•פיבונאצ לסדרת מימושים שתי ראינו'י:כבר ושני שניה חלקי במשך מהר רץ אחד
עבור סביר בזמן עוצר לאN=64
132. סיבוכיות-complexity
•היא ומאלגוריתמים שלנו מקוד ביותר החשובה הדרישהחוקי קלט שלכל
האלגוריתםתמידנכונה תשובה מחזיר
•ולתחזוקה להבנה קל יהי שלנו שהקוד רצינו גם בנוסף
•יעילות דרישתמאוד וחשובה קריטית דרישה גם היא היום נדבר שעלינו
•פיבונאצ לסדרת מימושים שתי ראינו'י:כבר ושני שניה חלקי במשך מהר רץ אחד
עבור סביר בזמן עוצר לאN=64
133. סיבוכיות-complexity
•היא ומאלגוריתמים שלנו מקוד ביותר החשובה הדרישהחוקי קלט שלכל
האלגוריתםתמידנכונה תשובה מחזיר
•ולתחזוקה להבנה קל יהי שלנו שהקוד רצינו גם בנוסף
•יעילות דרישתמאוד וחשובה קריטית דרישה גם היא היום נדבר שעלינו
•פיבונאצ לסדרת מימושים שתי ראינו'י:כבר ושני שניה חלקי במשך מהר רץ אחד
עבור סביר בזמן עוצר לאN=64:מימושאחדעיליושנילאיעיל
•יעילות המושג את נגדיר היוםבצורהבו להשתמש איך ונראה פורמלית
134. סיבוכיות-complexity
•היא ומאלגוריתמים שלנו מקוד ביותר החשובה הדרישהחוקי קלט שלכל
האלגוריתםתמידנכונה תשובה מחזיר
•ולתחזוקה להבנה קל יהי שלנו שהקוד רצינו גם בנוסף
•יעילות דרישתמאוד וחשובה קריטית דרישה גם היא היום נדבר שעלינו
•פיבונאצ לסדרת מימושים שתי ראינו'י:כבר ושני שניה חלקי במשך מהר רץ אחד
עבור סביר בזמן עוצר לאN=64:מימושאחדעיליושנילאיעיל
•יעילות המושג את נגדיר היוםבצורהבו להשתמש איך ונראה פורמלית
•יעילות על לדבר במקום זמן למדוד לא פשוט למהסיבוכיות?
135. סיבוכיות-complexity
•להבין נוכל סיבוכיות ניתוח בעזרת:
•יעילה יותר בצורה קוד לממש איך
•מתי להחליט,ולמה,ולהשתמש לבחור כדאי נתונים מבנה ובאיזה
•ראשון במקום תמיד כמעת היא קוד של נכונות שדרישת לזכור כדאי,גם אבל
חשובה מאוד יעילות
136. סיבוכיות-complexity
•להבין נוכל סיבוכיות ניתוח בעזרת:
•יעילה יותר בצורה קוד לממש איך
•מתי להחליט,ולמה,ולהשתמש לבחור כדאי נתונים מבנה ובאיזה
•ראשון במקום תמיד כמעת היא קוד של נכונות שדרישת לזכור כדאי,גם אבל
חשובה מאוד יעילות
•השאלותהחשובות:
•כמהזמןקודשלנורץ?
•זיכרון בכמהמשתמשקודשלנו?
•האםאפשרלשפרשלנו קוד ביצועי?ואיך?
137. סיבוכיות-complexity
•להבין נוכל סיבוכיות ניתוח בעזרת:
•יעילה יותר בצורה קוד לממש איך
•מתי להחליט,ולמה,ולהשתמש לבחור כדאי נתונים מבנה ובאיזה
•ראשון במקום תמיד כמעת היא קוד של נכונות שדרישת לזכור כדאי,יעילות גם אבל
חשובה מאוד
•השאלותהחשובות:
•כמהזמןקודשלנורץ?–ריצה זמן סיבוכיות בשאלה נתרכז בעיקר אנו
•זיכרון בכמהמשתמשקודשלנו?
•האםאפשרלשפרשלנו קוד ביצועי?ואיך?
•דרישת"קריא קודוקלחשובה גם לתחזוקה"במקום באה היא המקרים ברוב אבל
שלישי
138. סיבוכיות-complexity
•להבין נוכל סיבוכיות ניתוח בעזרת:
•יעילה יותר בצורה קוד לממש איך
•מתי להחליט,ולמה,ולהשתמש לבחור כדאי נתונים מבנה ובאיזה
•ראשון במקום תמיד כמעת היא קוד של נכונות שדרישת לזכור כדאי,יעילות גם אבל
חשובה מאוד
•השאלותהחשובות:
•כמהזמןקודשלנורץ?–ריצה זמן סיבוכיות בשאלה נתרכז בעיקר אנו
•זיכרון בכמהמשתמשקודשלנו?
•האםאפשרלשפרשלנו קוד ביצועי?ואיך?
•דרישת"קריא קודוקלחשובה גם לתחזוקה"במקום באה היא המקרים ברוב אבל
שלישי
צריךלשמורעלבלנסביןיעילותשלהקודוקלותהבנהשלו
139. ריצה זמן למדוד אפשר איך
•א פתרון:
•ריצה זמן ולמדוד שונים קלטים עם אותו ולהריץ הקוד את לממש
•למשלבעזרתפונקציהtime()
140. ריצה זמן למדוד אפשר איך
•א פתרון:
•ריצה זמן ולמדוד שונים קלטים עם אותו ולהריץ הקוד את לממש
•למשלבעזרתפונקציהtime()
•יתרון:
•פשוטלממש
•חסרונות:
•האפשריים קלטים לכל הקוד את להריץ נוכל לא
•מהנעשהעםזמן המון רצה תוכנה(שנה)עלקלטמסוים?
•עוצרת לא תוכנה עם נעשה מה?
•מריצים שבו במחשב תלוי ריצה זמן
•הזמןלאלהרצה מהרצה להשתנות ויכול מדויק
•הזמןבה שמשמשים פייתון בגרסת תלוי
141. ריצה זמן למדוד אפשר איך
•א פתרון:
•ריצה זמן ולמדוד שונים קלטים עם אותו ולהריץ הקוד את לממש
•למשלבעזרתפונקציהtime()
•פתרוןב:
•עושה שהקוד בסיסיות פעולות כמות בעזרת ריצה זמן נאפיין
•נבטאאתכמותהקלט אורך של כפונקציה פעולות
•דומיננטיים לא מגורמים נתעלם בפונקציה
142. ריצה זמן למדוד אפשר איך
•א פתרון:
•ריצה זמן ולמדוד שונים קלטים עם אותו ולהריץ הקוד את לממש
•למשלבעזרתפונקציהtime()
•פתרוןב:
•עושה שהקוד בסיסיות פעולות כמות בעזרת ריצה זמן נאפיין
•נבטאאתכמותהקלט אורך של כפונקציה פעולות
•דומיננטיים לא מגורמים נתעלם בפונקציה
•נעזרבמודלחישובשלמכונתחישובעםגישהאקראית(random access machine)
•פקודה לאחר פקודה מבצעת המכונה
•פעולותבסיסיות:השמה,השוואה,אריתמטיות פעולות,בזיכרון לאובייקט גישה
•מודלחישובזההואושימושי סביר
143. ריצה זמן למדוד אפשר איך
•ב פתרון':
•עושה שהקוד בסיסיות פעולות כמות בעזרת ריצה זמן נאפיין
•נבטאאתכמותהקלט אורך של כפונקציה פעולות
•דומיננטיים הלא מגורמים נתעלם בפונקציה
•נעזרבמודלחישובשלמכונתחישובעםגישהאקראית(random access machine)
•פקודה לאחר פקודה מבצעת המכונה
•פעולותבסיסיות:השמה,השוואה,אריתמטיות פעולות,בזיכרון לאובייקט גישה
•מודלחישובזההואסביר,שימושי
•מחשב של מהירות חשובה לא כעת,לדעת רק חשוב פייתון של גרסת חשובה לא
הקלט אורך של כפונקציה בחישוב הפעולות כמות
144. בקלט תלויה פעולות כמות
•ב גישה,'טובה גישה היא
•אבלכמותפעולותחישוביכולהלהיותשונהעבורקלטיםשונים
145. בקלט תלויה פעולות כמות
•ב גישה,'טובה גישה היא
•אבלכמותפעולותחישוביכולהלהיותשונהעבורקלטיםשונים
•למשלאםנרצההאם לבדוקאיברמופיעברשימה:
146. בקלט תלויה פעולות כמות
•ב גישה,'טובה גישה היא
•אבלכמותפעולותחישוביכולהלהיותשונהעבורקלטיםשונים
•למשלאםנרצההאם לבדוקאיברמופיעברשימה:
•בדיקות מעט נבצע רשימה בהתחלת נמצא האיבר אם
•הרשימה לאורך ששווה פעולות כמות נעשה ברשימה נמצא לא בכלל האיבר ואם
147. בקלט תלויה פעולות כמות
•ב גישה,'טובה גישה היא
•אםכמותפעולותריצהתלויהבקלט,נמדוד איךאותה?
148. בקלט תלויה פעולות כמות
•ב גישה,'טובה גישה היא
•אםכמותפעולותריצהתלויהבקלט,נמדוד איךאותה?
•קייםמספרגישות:
•מהיר הכי ריצה זמןכל ביןהקלטיםבאותואורךbest case
•זמןריצהכל בין ממוצעהקלטיםאורך באותוaverage case
•זמןריצהביותר הגרוע במקרהאורך באותו הקלטים כל ביןworst case
149. בקלט תלויה פעולות כמות
•ב גישה,'טובה גישה היא
•אםכמותפעולותריצהתלויהבקלט,נמדוד איךאותה?
•קייםמספרגישות:
•מהיר הכי ריצה זמןביןכלהקלטיםבאותואורךbest case
•זמןריצהכל בין ממוצעהקלטיםאורך באותוaverage case
•זמןריצהביותר הגרוע במקרהאורך באותו הקלטים כל ביןworst case
•עבורחיפושליניאריבלולאהבגודל רשימה עבור קודמת מדוגמאnנקבל:
•best case:
•average case:
•:worst case
150. בקלט תלויה פעולות כמות
•ב גישה,'טובה גישה היא
•אםכמותפעולותריצהתלויהבקלט,נמדוד איךאותה?
•קייםמספרגישות:
•מהיר הכי ריצה זמןביןכלהקלטיםבאותואורךbest case
•זמןריצהכל בין ממוצעהקלטיםאורך באותוaverage case
•זמןריצהביותר הגרוע במקרהאורך באותו הקלטים כל ביןworst case
•עבורחיפושליניאריבלולאהבגודל רשימה עבור קודמת מדוגמאnנקבל:
•best case:פעולה1
•average case:n/2פעולות
•:worst casenפעולות
151. בקלט תלויה פעולות כמות
•ב גישה,'טובה גישה היא
•אםכמותפעולותריצהתלויהבקלט,נמדוד איךאותה?
•קייםמספרגישות:
•מהיר הכי ריצה זמןביןכלהקלטיםבאותואורךbest case
•זמןריצהכל בין ממוצעהקלטיםאורך באותוaverage case
•זמןריצהביותר הגרוע במקרהאורך באותו הקלטים כל ביןworst case
•עבורחיפושליניאריבלולאהבגודל רשימה עבור קודמת מדוגמאnנקבל:
•best case:פעולה1
•average case:n/2פעולות
•:worst casenפעולות
•אנונתרכזבניתוחסיבוכיותבמקרההגרועביותר(חסםעליון)
154. סיכום
•אורך באותו הקלטים כל עבור ביותר הגרוע למקרה סיבוכיות נחשב
•נתעלםמגורמיםפחותמשמעותיים
•משמעותי גורם של כפלי מקבוע גם נתעלם
162. דוגמאמסכמת
•ביותר הגרוע במקרה התוכנה תעבוד צעדים כמהקלט עבור:n
•תשובה:100+n+n^2
•O(n^2)
const n n^2 100+n+n^2
100 100 10000 10200
100 1000 1000000 1001100
100 10000 100000000 100010100
100 100000 10000000000 10000100100
100 1000000 1E+12 1E+12