Algoritmo Doomsday
L' algoritmo "Doomsday" è un metodo per calcolare il giorno della settimana di una specifica data passata o futura. L'algoritmo si presta particolarmente ad essere usato per effettuare il calcolo a mente.
L'algoritmo è stato ideato dal matematico inglese John Conway [1][2].
L'uso del nome Doomsday (in inglese: Giorno del Giudizio) è stato criticato da alcuni. Altri invece hanno fatto notare che "doom" in inglese ha anche il significato secondario di "predeterminato"; e in effetti l'algoritmo si basa appunto su alcuni giorni "predeterminati".
L'applicazione dell'algoritmo richiede tre passi:
- Determinazione del giorno base a livello di secolo
- Usare il suddetto giorno per calcolare il "Doomsday" dell'anno in questione
- Usare il "Doomsday" dell'anno in questione per calcolare il giorno della settimana del giorno desiderato.
ESEMPIO: Il giorno base a livello di secolo per il secolo 20xx è Martedì. Da questo dato si può calcolare che il "Doomsday" del 2011 è un Lunedì. Da questo dato si può velocemente (anche a mente) calcolare il giorno della settimana di un qualunque giorno del 2011.
L'algoritmo è particolarmente adatto al calcolo mentale anche perchè se (ad esempio) ad inizio 2011 si è effettuato un calcolo e si è stabilito che il "Doomsday" del 2011 è Lunedì, è presumibile che nelle applicazioni successive dell'algoritmo nello stesso anno ci si ricordi ancora del risultato intermedio e si possa quindi partire direttamente dal terzo passo.
John Conway suggerisce alcuni trucchi mnemonici:
- Numerare i giorni da 0 (Domenica) a 6 (Sabato) ed abituarsi a pensare (usando i numeri in inglese) ai giorni della settimana come Noneday, Oneday, Twosday, Treblesday, Foursday, Fiveday, and Six-a-day. Sfruttare quindi da somiglianza di Oneday con Monday (in inglese Lunedì), di Twosday con Tuesday (in inglese Martedì), di Foursday con Thursday (in inglese Giovedì) e di Fiveday con Friday (in inglese Venerdì).
- Ricordarsi che il giorno base del secolo 19xx è Mercoledì, che può essere ricordato pensando alla frase "We-in-this-day" (che suona come Wednesday: in inglese Mercoledì). Cioè i contemporanei di Conway sono gente del novecento.
- Ricordarsi che il giorno base del secolo 20xx è Martedì, che può essere ricordato, pensando a Twosday: appunto Martedì.
Con i trucchi suddetti nell'applicare l'algoritmo si può spesso saltare il primo passo, o i primi due passi (che saranno comunque spiegati in dettaglio nel seguito).
NOTARE che l'algoritmo descritto da John Conway si adatta sia al Calendario gregoriano che al Calendario giuliano. In questa pagine si descrive solo in caso "Calendario Gragoriano".
Applicazione del Passo 3 (da effettuare comunque)
Noto il "Doomsday" dell'anno in questione, il passaggio al giorno della settimana del giorno specifico è molto semplice. Basta ricordarsi che il "Doomsday" coincide con il giorno della settimana dell'ultimo giorno di febbraio (28 negli anni non bisestili e 29 negli anni bisestili). Bisogna poi notare che in tutti gli anni (sia non bisestili che bisestili) concordano con l'ultimo giorno di febbraio le seguenti date (facili da ricordarsi): 4/4 (4 Aprile), 6/6 (6 Giugno), 8/8 (8 Agosto), 10/10 (10 Ottobre), 12/12 (12 Dicembre). In pratica in tutti i mesi "pari" successivi a febbraio il giorno che è pari al numero che corrisponde al mese concorda con l'ultimo giorno di febbraio.
Per i mesi dispari il trucco mnemonico è leggermente più complicato: concordano con l'ultimo giorno di febbraio le seguenti date in mesi dispari: 9/5 (9 Maggio), 5/9 (5 Settembre), 11/7 (11 Luglio) e 7/11 (7 Novembre). I pratica per tutti i mesi "dispari" successivi a Marzo per avere il giorno che concorda con l'ultimo di febbraio bisogna aggiungere o togliere 4.
Tutti i giorni particolari suddetti possono quindi essere considerati "Doomsday" da cui si può partire per il calcolo. Basta fare la sottrazione fra il giorno nella data richiesta e il giorno "Doomsday" nel mese richiesto, aggiungere il valore del "Doomsday dell'anno e aggiungere o togliere più volte 7 fino ad avere un numero fra 0 e 6.
ESEMPI PRATICI:
1. 13 Settembre 2011: il "Doomsday" più vicino è il 5/9;
calcolo>>13-5=8 aggiunto al "Doomsday" di 2011 (Lunedì) si ottiene 2+1=9 quindi;
calcolo>>sottraendo ripetutamente 7 (basta una volta)=2=Twosday=Martedì
2. 4 Novembre 2011: il "Doomsday" più vicino è il 7/11;
calcolo>>4-7=-3 aggiunto al "Doomsday" di 2011 (Lunedì) si ottiene -3+1=-2 quindi;
calcolo>>aggiungendo ripetutamente 7 (basta una volta)=5=Fiveday=Venerdì
3. 28 Aprile 2011: il "Doomsday" più vicino è il 4/4;
calcolo>>28-4=24 aggiunto al "Doomsday" di 2011 (Lunedì) si ottiene 24+1=25 quindi;
calcolo>>aggiungendo ripetutamente 7 (tre volte)=4=Foursday=Giovedì
Restano a questo punto escluse le date di Gennaio, Febbraio e Marzo.
- Per Marzo è semplicissimo: vista la corrispondenza "Doomsday" di anno con giorno delle settimana dell'ultimo giorno di Febbraio, è facile ricordarsi che tutti i giorni di marzo della tabellina del 7 (7,14,21,28) sono ""Doomsday"".
- Stesso discorso per Febbraio di un anno non bisestile.
- Per un Febbraio di un mese bisestite bisogna ricordarsi di sottrarre 1: il Doomsday è quindi 6.
- Per Gennaio il Doomsday è 3 per gli anni non bisestili e 4 nei bisestili: il trucco mnemonico è "3 nei primi 3 anni e 4 nel 4° anno".
- Per Gennaio ci si può anche agganciare al "Doomsday" dell'anno precedente (come se fosse il tredicesimo mese dell'anno precedente) ed usare il 2 Gennaio come "Doomsday". Questo risulta particolarmente vantaggioso nei calcoli rapidi fatti a fine anno: se ad esempio a novembre volete sapere di che giorno casca il successivo 22 Gennaio, probabilmente ricorderete il "Doomsday" dell'anno in corso e il calcolo è rapidissimo. ESEMPIO a Novembre 2011 avrete ormai fatto più volte uso del dato "Doomsday" 2011=Lunedì, per calcolare quando casca il 22 Gennaio 2012 basta fare 22-2=20+1(Lunedì)=21-7 (3 volte) = 0 = Domenica.
Come detto sopra per i mesi dispari occorre ricordarsi che i "Doomsday" sono il 9/5, 11/7, 5/9 e 7/11. John Conway ha dato un trucco mnemonico anche per questo; il trucco non è però traducibile in italiano ed è quindi utilizzabile da chi è profondo conoscitore dell'inglese e dell'america del nord. In america si usa dire che un lavoro noioso è un lavoro "9 to 5". Inoltre c'è una famosa catena di negozi che si chiama 7-Eleven (perchè sono sempre aperti appunto dalla 7 alle 23. Il trucco mnemonico è quindi "ho un lavoro noioso da 7-Eleven"
Riassumendo, prima di passare al "Passo 2": essendo il "Doomsday" del 2011 un Lunedì, occorre ricordare che sono tutti Lunedì il 28 Febbraio, il 4/4, il 6/6, l'8/8, il 10/10, il 12/12, il 9/5, il 5/9, l'11/7, il 7/11, il 7/3, il 3/1 e il 2/1 dell'anno successivo. Per un anno bisestile il 28 Febbraio va sostituito con il 29 Febbraio e il 3/1 con il 4/1.
Applicazione del Passo 2 (solo se necessario)
Il passo due tiene conto degli anni all'interno del secolo. Vanno quindi prese solo le ultime cifre dell'anno e scartate le prime due. 1951 diventa quindi 51.
- A questa cifra va aggiunto quello che si ottiene dividendolo per 4 scartando il resto.
- Al valore del risultato va aggiunto il valore del "Doomsday" di secolo e va sottratto ripetutamente 7 fino ad ottenere un valore fra 0 e 6
calcolo>>51=>51+12(51 diviso 4)=63+3(19xx:mercoledì)=66 sottraendo ripetutamente 7 (9 volte)=3=Mercoledì
Per il 1983:
calcolo>>83=>83+20(83 diviso 4)=103+3(19xx:mercoledì)=106 sottraendo ripetutamente 7 (15 volte)=1=Lunedì
Per rapidità conviene: 106-70=36-35(7 volte 5)=1.
Per il 2005:
calcolo>>05=>5+1(5 diviso 4)=6+2(20xx:martedì)=8 sottraendo ripetutamente 7 (1 volta) = 1=Lunedì.
Applicazione del Passo 1 (solo se necessario)
L'applicazione del passo 1 consiste solo nel notare che 4 secoli contengono un numero di giorni multiplo di 7.
E' quindi sufficente ricordarsi che:
- "Doomsday" 21xx = 0 = Domenica ("Nonesday")
- "Doomsday" 20xx = 2 = Martedì ("Twosday")
- "Doomsday" 19xx = 3 = Mercoledì ("We-in-this-day")
- "Doomsday" 18xx = 5 = Venerdì ("Fivesday": il secolo con le 5 giornate di Milano)
Per tutti gli altri secoli è sufficente aggiungere (o sottrarre) ripetutamente 4 fino a riportarsi ad uno dei secoli noti.
ESEMPIO: 1127 => secolo 11+4=15+4=19=Mercoledì
Riferimenti
- ^ John Horton Conway, "Tomorrow is the Day After Doomsday", Eureka, volume 36, pagine 28-31, Ottobre 1973.
- ^ Richard Guy, John Horton Conway, Elwyn Berlekamp : "Winning Ways: For Your Mathematical Plays, Volume. 2: Games in Particular", pagine 795-797, Academic Press, London, 1982, ISBN 01-12-091102-7.