Dni tygodnia i reszty z dzielenia — matematyka kalendarza

Dni tygodnia i reszty z dzielenia — matematyka kalendarza

Jeśli dziś jest środa, jaki dzień tygodnia będzie za sto dni? Nie trzeba wypisywać stu kolejnych nazw. Po każdych siedmiu dniach wracamy do tej samej nazwy, więc pełne tygodnie nie zmieniają wyniku. Znaczenie ma reszta.

Ustal, co znaczy „za”

„Za jeden dzień” oznacza dzień następny. Dnia początkowego nie liczymy jako pierwszego dnia przesunięcia. Ta umowa jest istotna: zdanie „pierwszy dzień wyjazdu przypada w środę” używa numeracji dni wyjazdu, a nie tego samego licznika upływu czasu.

Sto dni to 14 pełnych tygodni i 2 dni, bo 100 = 14·7 + 2. Od środy przesuwamy się więc o dwa: czwartek, piątek. Za sto dni będzie piątek.

Numeracja ułatwia cofanie

Przypisz poniedziałkowi 0, wtorkowi 1, środzie 2, …, niedzieli 6. Przesunięcie o n dni obliczamy, dodając n i wybierając resztę 0–6 przy dzieleniu przez 7. Nie ma obowiązku używania akurat tej numeracji, ale trzeba zachować ją przez całe zadanie.

Dziesięć dni przed poniedziałkiem: 0 − 10 = −10. Po dodaniu 14 otrzymujemy 4, czyli piątek. Można też cofnąć jeden pełny tydzień i jeszcze trzy dni. Obie drogi prowadzą do tej samej odpowiedzi i pomagają sprawdzić znaki.

Powtarzające się spotkania

Spotkanie odbywa się co 10 dni, a pierwsze wypada w poniedziałek. Każdy kolejny termin przesuwa nazwę dnia o 3, bo 10 ma resztę 3 modulo 7. Dostajemy poniedziałek, czwartek, niedzielę, środę, sobotę, wtorek, piątek i znów poniedziałek.

Powrót następuje po siedmiu odstępach, czyli po 70 dniach. Jest to ósme spotkanie, jeśli pierwsze oznaczymy numerem 1. Siedem spotkań to tylko sześć odstępów — podobne rozróżnienie jest ważne przy indeksach i wyrazach ciągu.

Rok nie jest pełną liczbą tygodni

365 = 52·7 + 1, a 366 = 52·7 + 2. Przesunięcie o dokładnie tyle dni zmienia dzień tygodnia odpowiednio o 1 lub 2. Przy porównywaniu tej samej daty w kolejnych latach trzeba jednak sprawdzić, czy w rozpatrywanym odcinku rzeczywiście znajduje się dodatkowy dzień lutego. Sam fakt, że któryś rok jest przestępny, nie opisuje jeszcze całego odcinka między datami.

  • Oddziel liczbę zdarzeń od liczby odstępów.
  • Zapisz dzień początkowy i kierunek przesunięcia.
  • Usuń pełne wielokrotności siedmiu.
  • Sprawdź wynik krótkim liczeniem na nazwach dni.

Ćwiczenie: dziś jest sobota. Jaki dzień był 30 dni temu? Ponieważ 30 = 4·7 + 2, cofamy się o dwa dni do czwartku. Jaki dzień będzie za 49 dni? Sobota, bo 49 tworzy siedem pełnych tygodni. Metodę można rozwinąć przez rachunek reszt oraz wzór na wyraz ciągu arytmetycznego, jeśli regularnym terminom przypiszesz kolejne numery.

Te same reguły dodawania i redukowania reszt można wykorzystać w prostym szyfrze afinicznym. Zmienia się moduł i interpretacja numerów, ale nadal trzeba jawnie ustalić numerację.