180 likes | 427 Views
השארית MOD, % השארית השלמה הנותרת מחלוקת A ב- B. שירלי רוזנברג-כהן ואיתן ראט. רקע. השארית נלמדת לראשונה בכיתות נמוכות של בי"ס יסודי (לפני שבר): 16: 3 = 5 (1) לעיתים – נלמדת בחט"ב במסגרת לימודי "מחזוריות" Modulo (שעון, ימים בשבוע) תלמידי מדעי המחשב לומדים שארית בתיכון כחלק
E N D
השאריתMOD, %השארית השלמה הנותרת מחלוקת A ב- B שירלי רוזנברג-כהן ואיתן ראט סמינר מדמ"ח יוני 2004
רקע • השארית נלמדת לראשונה בכיתות נמוכות של בי"ס יסודי (לפני שבר): 16: 3 = 5 (1) • לעיתים – נלמדת בחט"ב במסגרת לימודי "מחזוריות" Modulo (שעון, ימים בשבוע) • תלמידי מדעי המחשב לומדים שארית בתיכון כחלק מהפעולות של טיפוס נתונים שלם Integer סמינר מדמ"ח יוני 2004
החילוק בשלמים הוא פעולה במספרים טבעיים, ובשימוש יומיומי. Mother = mod לאמא היו 14 סוכריות אותן חילקה ל-5 ילדיה. כמה סוכריות קיבל כל ילד? כמה סוכריות נשארו לאמא? היום יום שני. איזה יום בשבוע יהיה בעוד 10 ימים? 210תלמידי השכבה נוסעים לטיול. כמה אוטובוסים יש להזמין, אם בכל אוטובוס נכנסים 50 תלמידים? סמינר מדמ"ח יוני 2004
תלמידים מתקשים בהבנת השארית השלמה והכרת תכונותיה. המטרה – לזהות אמונות, תובנות, קשיים ותפיסות מוטעות של תלמידים על תכונות השארית. סמינר מדמ"ח יוני 2004
מה הם אומרים? • על mod בכלל: • "זה מיושן" : • למדנו את זה בכיתה ב' / אין את זה במחשבון. • "לא צריך את זה" : אפשר לחשב אחרת: Frac(A/B) • A – ( trunc(A/B) * B) סמינר מדמ"ח יוני 2004
מה הם אומרים? מה הם אומרים? על הבעיות המילוליות: לאמא היו 14 סוכריות אותן חילקה ל-5 ילדיה. כמה סוכריות קיבל כל ילד? כמה סוכריות נשארו לאמא? זה לא פייר! למה לאמא יש יותר? 210תלמידי השכבה נוסעים לטיול. כמה אוטובוסים יש להזמין, אם בכל אוטובוס נכנסים 50 תלמידים? בשביל 10 ילדים נזמין עוד אוטובוס? שיצטופפו! סמינר מדמ"ח יוני 2004
מה הם אומרים? שאלת מתכונת: בתכנית נמצאת ההוראה:X:=A mod B; מה יהיה ערכו של X עבור ערכי A ו-B הבאים: 1. A=5 B=2 2. A=2 B=3 3. A=6 B=3 0 אם המנה 0 אז גם השארית... מהו תחום הערכים ש-X יכול לקבל אם B =4 ו-A הוא מספר שלם חיובי? מה פתאום 0 בתחום? 0 לא מספר / לא מוגדר סמינר מדמ"ח יוני 2004
השאלון המחקרי השאלות עוסקות בנוסחה C = A mod B כאשר כל אחד מהמשתנים יכול לתפקד כנעלם: X = A mod B C = X mod B C = A mod X סמינר מדמ"ח יוני 2004
מהלך המחקר • המשתתפים: תלמידי מדעי המחשב בכיתות י - יב • התשובות נותחו לפי תכונות השארית • תלמידים רואיינו במהלך הפתרון, וקיבלו עזרה, על מנת לעמוד על תפיסות מוטעות ותובנות. סמינר מדמ"ח יוני 2004
שאלה 1:(מציאת C) כתוב תכנית הקולטת מספר שלם חיובי A והפלט שלה הוא השארית מחלוקת A ב-7. למשל: עבור A=18 התשובה היא 4. תשובה: Readln(A); Writeln(A mod 7); ידע בסיסי סמינר מדמ"ח יוני 2004 A mod B = X
שאלה 2:(מציאת A) • כתוב תכנית הקולטת מספר שלם חיובי X והפלט שלה הוא כל המספרים השלמים החיוביים הקטנים מ-100 ששארית חלוקתם ב-5 היא X. למשל: עבור X=2 אחד המספרים בפלט יהיה 7, מספר נוסף יהיה : 92 A:=x; While A<=100 do Begin Write(A,’ ‘); A:=A+5; End; • ForA:= 1 to 100 do • if A mod 5 = x then write(A); האיבר הראשון המטרה: סדרה חשבונית שהיא קבוצת השאריות השקולות המחלק הוא ההפרש 2, 7, 12, 17, 22,…97 סמינר מדמ"ח יוני 2004 X mod B = C
שאלה 3:(מציאת B) • כתוב תכנית הקולטת מספר שלם חיובי A והפלט שלה הוא כל המספרים השלמים והחיוביים אשר שארית החלוקה של A בהם היא 5.למשל: עבור A=41 אחד המספרים בפלט יהיה 6, מספר נוסף יהיה 9 "המספר האמיתי" מחלק גדול מהשארית Num :=A-c; For B:=c+1 to num do If (num mod B = 0) then write(b,’ ‘); For B := 1 to A do if A mod B = 5 then write(B) המטרה: מחלקים טבעיים של A-c הגדולים מהשארית c 6, 9, 12, 18, 36 סמינר מדמ"ח יוני 2004 A mod X = C
שאלה 3:(מציאת B) • כתוב תכנית הקולטת מספר שלם חיובי A והפלט שלה הוא כל המספרים השלמים והחיוביים אשר שארית החלוקה של A בהם היא 5. למשל: עבור A=41 אחד המספרים בפלט יהיה 6, מספר נוסף יהיה 9 "המספר האמיתי" בדיקה עד השורש בלבד! יותר יעיל Num := A – C;limit := trunc(sqrt(Num); For B := 1 To limit Do If (Num mod B = 0) ThenBegin If (B > C) Then Write(B,' '); temp := Num div B; If (temp > C) Then Write(temp,' ');End; מחלק גדול מהשארית המטרה: מחלקים טבעיים של A-c הגדולים מהשארית c "בן הזוג" של המחלק 36, 18, 12, 9, 6 סמינר מדמ"ח יוני 2004 A mod X = C
רמזים שעזרו: הצגה גרפית: מתמטיקה: לגבי הנוסחה כל פעם שני משתנים נתונים ומוצאים את השלישי. A mod B = C חישוב ידני: מה המספר הבא? תן לי דוגמא... הצגת התבנית: מחלקיםטבעיים של המספר A-C ... סדרה חשבונית המתחילה ב-C ... סמינר מדמ"ח יוני 2004
מוטיבציה – בעיות מענינות • "מתמטיקת שעון" - מודולו : • אם היום יום שני, איזה יום יהיה בעוד 10 ימים. • כמה ימים, שעות, ודקות הם 100 שעות. ו-200 דקות. • פירוק מספר לספרותיו. 30 : 2 = 15 (0) 15 : 2 = 7 (1) 7 : 2 = 3 (1) 3 : 2 = 1 (1) 1 : 2 = 0 (1) • מעבר מבסיס לבסיס: • כמה זה 3010 בבסיס 2? (השארית היא הספרה) סמינר מדמ"ח יוני 2004
בעיות מענינות • מערך מעגלי : תור, hashing • קידום אינדקס ב-1:N=8 7 0 1 if I=N then I :=1 else I:= I+1 I:= (I + 1) mod N 2 • קידום אינדקס מעגלי • ( רולטה, שחקנים במשחק, ריבוע קסם) … סמינר מדמ"ח יוני 2004
1,4,7 0,3,6,9 0,3,6,9 0 2,5,8 1 2,5,8 2,5,8 1,4,7 1,4,7 2 0,3,6,9 בעיות מענינות • אוטומט סופי דטרמיניסטי: (חיבור שאריות) הקלט: מספר עשרוני באורך כלשהו. המילים בשפה: מספרים המתחלקים ב-3 עם שארית 2. סמינר מדמ"ח יוני 2004
תודה המשך נעים שירלי ואיתן סמינר מדמ"ח יוני 2004