Tartalomjegyzék

Doomsday algoritmus

Az algoritmus segítségével fejben ki lehet számolni, hogy egy adott dátum a hét melyik napjára esett. Vagyis ez egy fejben számolható öröknaptár. Az eredeti algoritmust John Norton Conway (akit leginkább az életjáték kitalálójaként ismernek) készítette. Az idő során apróbb módosításokat végeztek az algoritmuson, hogy még egyszerűbb legyen. Ez a magyar nyelvű oldal egy angol nyelvű oldal alapján készült.

Az algoritmust lépésenként lehet megtanulni. Minden lépés után egyre több napról tudjuk megállapítani, hogy a hét melyik napjára esett.

Február

Február utolsó napját (28. vagy 29.) nevezzük doomsday-nek (végzet napja - a továbbiakban az angol kifejezést használom, mert ez adja az algoritmus nevét is). Ha nincs szökőév, akkor február 28. a doomsday, szőkőévekben február 29. Ha tudjuk milyen napra esik egy évben a doomsday, akkor a februári dátumokat már könnyen kezelhetjük:

Példa: Milyen napra esik 2005. február 14. (Valentin nap)?

Megoldás: 2005-ben doomsday hétfő (később majd látjuk, hogyan lehet ezt kiszámolni). 2005. nem szökőév, tehát 2005. február 28. hétfő. Február 14. pont két héttel (14 nappal) van korábban, tehát az is hétfő.

Páros hónapok

Február után a többi páros hónap kezelése jön. (április, június, augusztus, október, december). Azt kell megjegyezni, hogy páros hónapok esetén (kivéve a korábban megtanult februárt) x. hónap x. napja a doomsday. Vagyis február utolsó napjával azonos napra esik:

Ez egy elég szerencsés véletlen, így könnyen megjegyezhetjük ezeket a hónapokat. Ezt a szabályt könnyen megjegyezhetjük. Ha mégsem megy, akkor emlékezzünk április 4-re, ami a szocializmusban ünnep volt. (Ez persze főleg azoknak segít, akik hozzám hasonlóan gyerekként ilyen ünnepségekre voltak kénytelenek járni)

Példa: Milyen napra esik 2005. december 31. (Szilveszter)?

Megoldás: 2005-ben doomsday hétfő. December a 12. hónap (ez páros), így december 12. hétfő. Vagyis hétfő december 19., december 26. is. Szilveszter 5 nappal (31-26=5) később van, vagyis szilveszter szombatra esik.

Páratlan hónapok (5. 7. 9. 11.)

Ez sajnos nehezebb mint a páros hónapok megjegyzése. Januárral és márciussal kicsit később foglalkozunk. A maradék 4 hónapot párba állíthatjuk, és azt kell megjegyezni, hogy a 4 hónap melyik napja a doomsday:

Vagyis szeptember 5., május 9., november 7., július 11.

Már csak az a kérdés, hogy ezt a két számpárt: 9-5, 7-11 miként jegyezzük meg. Az angol oldalon a következő mondat megtanulását javasolják:

"Reggel 9-től délután 5-ig, dolgozom a 7-11-es szobában."

Ez nyilván hasznos, bár különösen akkor könnyen megjegyezhető, ha igaz is.

A nem túlzottan fiataloknak valószínűleg egyszerűbb, ha a november 7-i dátumot megjegyezzük (április 4. - november 7. párost elég könnyű megjegyezni.) A másik párosítást ekkor már nem tudjuk elrontani, hiszen az 5, 7, 9, 11 számokból akkor csak az 5 és 9 marad.

Példa: Milyen napra esik 2005. november 30.?

Megoldás: 2005-ben doomsday hétfő. November a 11. hónap, november 7. hétfő. Vagyis hétfő november 7., 14., 21., 28. Harmincadika két nappal nappal (30-28=2) később van, vagyis november 30. szerda

Páratlan hónapok (március)

Február utolsó napja a doomsday, vagyis március 1-e előtti nap. Ezt legegyszerűbben úgy lehet megjegyezni, hogy március 0-a a doomsday.

Példa: Milyen napra esik 2005. március 15. (nemzeti ünnep)?

Megoldás: 2005-ben doomsday hétfő. Március 0. hétfő. Vagyis március 7., 14. hétfő. Vagyis 2005. március 15. kedd.

Páratlan hónapok (január)

Könnyen belátható, hogy januárral lesz legtöbb gondunk, mert a szökőévtől függően változik a doomsday helyzete. Legkönnyebben talán így lehet megjegyezni:

"3-szor egymás után január 3-a, majd a negyedik évben január 4-e."

Ez a kissé kusza mondat ezt jelenti: Ha nincs szökőév, akkor január 3-a, ha szökőév van, akkor január 4-e a doomsday. (Persze a szökőév meghatározása ennél bonyolultabb, de egy ilyen példamondatnak egyszerűnek kell lennie).

Példa: Milyen napra esik 2005. január 1. (újév)?

Megoldás: 2005-ben doomsday hétfő. 2005. nem szökőév, vagyis január 3. hétfő. Két nappal korábban szombat volt, vagyis január 1. szombat.

2005. naptár

Most jutottunk el addig a pontig, hogy 2005. minden dátumára ki tudjuk számolni, a hét melyik napjára esik. Akár egy szép kis táblázatot is rajzolhatunk.

                               2005

       Január                Február                 Március        
 H  K Sz Cs  P Sz  V    H  K Sz Cs  P Sz  V    H  K Sz Cs  P Sz  V 
                1  2       1  2  3  4  5  6       1  2  3  4  5  6
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    7  8  9 10 11 12 13
10 11 12 13 14 15 16   14 15 16 17 18 19 20   14 15 16 17 18 19 20
17 18 19 20 21 22 23   21 22 23 24 25 26 27   21 22 23 24 25 26 27
24 25 26 27 28 29 30   28                     28 29 30 31
31
       Április                 Május                 Június
 H  K Sz Cs  P Sz  V    H  K Sz Cs  P Sz  V    H  K Sz Cs  P Sz  V 
             1  2  3                      1          1  2  3  4  5
 4  5  6  7  8  9 10    2  3  4  5  6  7  8    6  7  8  9 10 11 12
11 12 13 14 15 16 17    9 10 11 12 13 14 15   13 14 15 16 17 18 19
18 19 20 21 22 23 24   16 17 18 19 20 21 22   20 21 22 23 24 25 26
25 26 27 28 29 30      23 24 25 26 27 28 29   27 28 29 30
                       30 31
        Július              Augusztus              Szeptember
 H  K Sz Cs  P Sz  V    H  K Sz Cs  P Sz  V    H  K Sz Cs  P Sz  V 
             1  2  3    1  2  3  4  5  6  7             1  2  3  4
 4  5  6  7  8  9 10    8  9 10 11 12 13 14    5  6  7  8  9 10 11
11 12 13 14 15 16 17   15 16 17 18 19 20 21   12 13 14 15 16 17 18
18 19 20 21 22 23 24   22 23 24 25 26 27 28   19 20 21 22 23 24 25
25 26 27 28 29 30 31   29 30 31               26 27 28 29 30

       Október               November               December
 H  K Sz Cs  P Sz  V    H  K Sz Cs  P Sz  V    H  K Sz Cs  P Sz  V 
                1  2       1  2  3  4  5  6             1  2  3  4
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    5  6  7  8  9 10 11
10 11 12 13 14 15 16   14 15 16 17 18 19 20   12 13 14 15 16 17 18
17 18 19 20 21 22 23   21 22 23 24 25 26 27   19 20 21 22 23 24 25
24 25 26 27 28 29 30   28 29 30               26 27 28 29 30 31
31

A többi év (19xx)

2005-ben doomsday hétfő. Mi lehetett 2004-ben, 2003-ban? 2004-ben vasárnap, 2003-ban péntek. Könnyen belátható, hogy ha nincs szökőév, akkor 1 nappal csúszik odébb (365=52*7+1), szökőévekben 2 nappal. (366=52*7+2).

Nyilván ez a számítási mód azért még nem túl egyszerű. A továbbiakban nézzük az 1900-as éveket (legtöbbször úgyis születésnapot számolunk ki, és az ide esik). Annyit kell megjegyezni, hogy 1900-ban doomsday szerda volt.

A többi évre (19YY) a következő algoritmussal számolható ki a doomsday:

Ezt a három számot kell összeadni, és megkapjuk, hány nappal szerda után van doomsday.

Példa: Mi a doomsday 1974-ben?

Megoldás:74/12=6 maradék 2, 2/4=0. Vagyis 6+2+0=8=1 (moduló héttel (hét maradékával) számolunk, szerda után 8 nappal pont az a nap van, mint szerda után 1 nappal). Vagyis szerda+1=csütörtök

A többi év (19xx) gyorsabban

Lássuk be, az előző számítás azért nem villámgyors. Készítsünk egy táblázatot:

 
   H   K    Sz   Cs   P    Sz   V
===================================
           1900 1901 1902 1903 ---- 
 1904 1905 1906 1907 ---- 1908 1909
 1910 1911 ---- 1912 1913 1914 1915
 ---- 1916 1917 1918 1919 ---- 1920
 1921 1922 1923 ---- 1924 1925 1926
 1927 ---- 1928 1929 1930 1931 ----
 1932 1933 1934 1935 ---- 1936 1937
 1938 1939 ---- 1940 1941 1942 1943
 ---- 1944 1945 1946 1947 ---- 1948
 1949 1950 1951 ---- 1952 1953 1954
 1955 ---- 1956 1957 1958 1959 ----
 1960 1961 1962 1963 ---- 1964 1965
 1966 1967 ---- 1968 1969 1970 1971
 ---- 1972 1973 1974 1975 ---- 1976
 1977 1978 1979 ---- 1980 1981 1982
 1983 ---- 1984 1985 1986 1987 ----
 1988 1989 1990 1991 ---- 1992 1993
 1994 1995 ---- 1996 1997 1998 1999
 ---- 2000 2001 2002 2003 ---- 2004
 2005 2006 2007 ---- 2008

A táblázatból könnyen kikereshető, hogy melyik évben melyik nap volt a doomsday. Természetesen az egész táblázatot megjegyezni túl nehéz lenne. Elegendő az 1900-as oszlopot megjegyezni. Ahol az oszlop nem tartalmaz számot (pl. 1911. és 1912. között), ott a kisebb számot jegyezzük meg, de felet hozzáadunk. Tehát a táblázatból a 6, 11.5, 17, 23, 28, 34, ...., 84, 90, 95.5 számsorozatot kell megjegyeznünk, így gyorsabban tudjuk kiszámolni a többi évben a doomsday-t.

Példa: Mi a doomsday 1971-ben?

Megoldás: A megjegyzett számsorozatból a legnagyobb szám, ami még 71-nél kisebb, az a 67.5. Vagyis 1968-ban szerda+1=csütörtök volt doomsday. 1971. három évvel van később, vagyis szerda+1+3=szerda+4=vasárnap.

Példa: Mi a doomsday 1937-ben?

Megoldás: A megjegyzett számsorozatból a legnagyobb szám, ami még 37-nél kisebb, az a 34. Vagyis 1934-ben szerda volt doomsday. 1937. három évvel van később, vagyis szerda+3=szombat. De 34 és 37 között volt egy szökőév (1936), vagyis még egyet hozzá kell adnunk, így megkapjuk, hogy szerda+3+1=vasárnap a doomsday 1937-ben.

Persze valamit valamiért, a sebesség érdekében meg kell jegyeznünk újabb adatokat. El kell dönteni, hogy mi a fontosabb, a sebesség, vagy az egyszerűség. (Meg persze azt, hogy 18 számot tudunk könnyebben megjegyezni, vagy 12-vel osztani). Személy szerint én inkább osztok 12-vel.

A többi évszázad

1900-ban doomsday szerda volt. Ahhoz, hogy a 20YY alakú éveket is tudjuk kezelni, azt kell tudni, mi volt 2000-ben a doomsday. Ez keddre esett. Mi lesz 2100-ban? vasárnap. 2200? péntek 2300? szerda. És itt vissza is értünk 1900-hoz. Találtunk egy 400 éves ciklust. Vagyis az évszázadokban a doomsday: vasárnap-kedd-szerda-péntek ciklusban változik, visszafelé.

   H   K    Sz   Cs   P    Sz   V
===================================                              
     1600  1500               
     2000  1900      1800     1700
     2400  2300      2200     2100

Kérdés, miként lehet ezt megjegyezni. Nos, az angol oldalon a "Son To Wed Friday" modnat memorizálását javasolják. Aki tud angolul, annak ez segíthet. (Egyébként az angol oldal készítőjének fia végül nem pénteken, hanem szombaton nősült, tovább nehezítve a megértést).

Ezzel persze a korábbi éveket is tudjuk kezelni. A nagy lelkesedésben azért ne felejtsük el, hogy a Gergely-naptárat a 16. században vezették be (1582. október 4-e után 1582. október 15-e következett), korábbi évekre ne alkalmazzuk az algoritmust. Ráadásul a bevezetés sem egyszerre történt, erre is figyeljünk oda! (pl. Magyarország: 1588, Anglia: 1752, Dánia: 1776, Szovjetúnió: 1918)