5 תשובות
נגיד שה1 לחודש היה ביום שלישי. החוקיות היא שבהינתן מספר x, נחשב את השארית - מודלו 7 של x-1, ואז:

ואז אם זה 0 להחזיר שלישי
אם זה 1 להחזיר רביעי
אם זה 2 להחזיר חמישי
...
אם זה 6 להחזיר שני

ובאופן כללי במקום להחזיר "שלישי" וכן הלאה, צריך להחזיר את היום שנתנו לך וכן הלאה
שואל השאלה:
תודהה רבה!
אפשר רק דוגמא קטנה?
אנונימית
דוגמה איך האלגוריתם עובד?
שואל השאלה:
כן אשמח
"דוגמת ריצה" כזאת למשל עם מספר מסוים
אנונימית
כן בטח,

נגיד שאמרנו לנו שה1 לחודש היה יום שלישי.

ושואלים אותנו איזה יום זה ה-4 לחודש.
אז אנחנו נעשה 4-1 שזה 3, ואז מודולו 7 - שזה שארית החלוקה של 3 ב-7. השארית היא 3.

לכן לפי ההנחה שלנו:
אם זה 0 להחזיר שלישי
אם זה 1 להחזיר רביעי
אם זה 2 להחזיר חמישי
אם זה 3 להחזיר שישי
וכן הלאה

רואים שצריך להחזיר "שישי". וזה באמת נכון, כי אם חושבים על זה שנייה מה-1 לחודש עד ה-4 לחודש בסהכ עברו 3 ימים, וזה שישי.

עכשיו דוגמה קצת יותר מעניינית - נגיד שנרצה לחשב איזה יום זה ה-18 לחודש.
אז נחסיר אחד, 18-1=17, ואז נצטרך לחלק ולמצוא מה השארית. אז 17 מודולו 7 זה 3 (כי נכנס פעמיים 7 ואז נשאר עם שארית 3), ולפי ההנחה שלנו (של מה להחזיר) נצטרך להחזיר שוב יום שישי.

וגם אפשר לעשות דוגמה בסיסית - נגיד ששואלים אותנו איזה יום זה ה-1 לחודש. אז עושים 1-1 שזה אפס, וכמובן שהשארית היא אפס, וזה מסתדר עם זה שאנחנו מחזירים את יום שלישי.

בעצם כל האלגוריתם הזה בנוי על כך שאנחנו מורידים את המחזוריות, כפולות של 7 - כי אם למשל אנחנו ביום שני, ונוסיף 7, כלומר שבוע, נשאר ביום שני. לכן מה שמעניין זה כמה זזנו "בין 0 ל-6" שזה משהו שהשארית נותנת.