Algoritmo Doomsday: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Aethelfirth (discussione | contributi)
Annullata la modifica 144281546 di 79.53.82.18 (discussione)
Etichetta: Annulla
 
(40 versioni intermedie di 32 utenti non mostrate)
Riga 1:
L{{'}}'''algoritmo Doomsday''' è un metodo per calcolare il [[giorno]] della [[settimana]] di una specifica data passata o futura. Ideato dal [[matematico]] [[Inghilterra|inglese]] [[John Horton Conway|John Conway]]<ref>John Horton Conway, "Tomorrow is the Day After Doomsday", Eureka, volume 36, pagine 28-31, Ottobre 1973.</ref><ref>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 0-12-091102-7.</ref> si presta a essere usato per effettuare il calcolo a mente.
[[File:John H Conway 2005.jpg|thumb|John Conway, ideatore dell'algoritmo Doomsday]]
 
Tale metodo si basa sul fatto che per ogni [[anno]] esiste un determinato giorno della settimana (il ''Doomsday'') in cui cadono alcune date facili da ricordare (ad esempio, il 4/4, 6/6, 8/8, 10/10, 12/12 e l'ultimo giorno di [[febbraio]], ogni anno, cadono tutti nello stesso giorno della settimana) ed è applicabile sia al [[calendario giuliano]] ([[dopo Cristo]]) che a quello [[calendario gregoriano|gregoriano]], anche se i doomsdayDoomsday sono genericamente diversi l'uno dall'altro.
 
==Meccanismo==
Riga 12:
L'algoritmo Doomsday si basa su calcoli [[Aritmetica modulare|modulo 7]], per cui Conway suggerisce di 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. Questo permette di sfruttare la somiglianza di Oneday con Monday (lunedì), di Twosday con Tuesday (martedì), di Foursday con Thursday (giovedì) e di Fiveday con Friday (venerdì).
 
Questa tecnica è particolarmente adatta al [[calcolo mentale]], perché se, ad esempio, a 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.
 
==Il Doomsday per alcuni anni recenti==
Il Doomsday per l'anno in corso '''({{CURRENTYEAR}})''' è '''{{#switch:{{CURRENTYEAR}}
|2012=Mercoledì
|2013=Giovedì
|2014=Venerdì
|2015=Sabato
|2016=Lunedì
|2017=Martedì
|2018=Mercoledì
|2019=Giovedì
|2020=Sabato
|2021=Domenica
|2022=Lunedì
|2023=Martedì
|2024=Giovedì
|2025=Venerdì
|20152026=Sabato
|20212027=Domenica
|20172028=Martedì
|20122029=Mercoledì
|20132030=Giovedì
}}'''.
 
Line 99 ⟶ 93:
Per i mesi dispari, invece, esistono delle differenze:
* a gennaio, i Doomsday sono 3 e 31 negli anni solari e 4 negli anni bisestili. In alternativa, ci si può anche agganciare al Doomsday dell'anno precedente ed usare il 2 gennaio come Doomsday (questo secondo metodo risulta particolarmente vantaggioso nei calcoli fatti a fine anno)
* a marzo, a novembre (e negli anni non bisestili anche a febbraio) sono Doomsday tutti i giorni multipli di 7 (7/3, 14/3, 21, 28); inoltre, il giorno 14/3, 28scritto in notazione m/gg, è 3)/14, che ricorda [[Pi greco|π]]
* in tutti gli altri mesi dispari, sono Doomsday queste date: 9/5, 11/7, 5/9, 7/11. Essendo speculari, è consigliato memorizzarle in coppia (9/5 e 5/9; 11/7 e 7/11)<ref>John Conway ha ideato un trucco mnemonico anche per queste date, tale trucco, però, non è traducibile in italiano ed è quindi utilizzabile solo da chi conosce l'inglese. Infatti, negli [[Stati Uniti d'America|USA]] si usa dire che un lavoro noioso è un lavoro "9 to 5". Inoltre, una famosa catena di negozi statunitense si chiama [[7-Eleven]] (perché sono sempre aperti appunto dalle 7 alle 23) e quindi il trucco mnemonico ideato da Conway è "9-to-5 at 7-11" cioè "Ho un lavoro noioso da 7-Eleven"</ref>
 
Line 131 ⟶ 125:
|}
 
==== Ulteriori peculiarità= ===
* Il [[Giorno dell'Indipendenza (Stati Uniti d'America)|giorno dell'indipendenza]] degli [[Stati Uniti d'America]], il 4 luglio, è sempre Doomsday
* Il giorno in cui si festeggia [[Halloween]], il 31 ottobre, è sempre Doomsday
* Illa festa del lavoro, il primo maggio e il giorno di [[Natale]], il 25 dicembre, cadecadono sempre un giorno prima del Doomsday
* Il 25 aprile, [[Anniversario della liberazione d'Italia|Festa della Liberazione]], è sempre Doomsday
* Il 15 agosto, [[Assunzione di Maria|Assunzione di Maria Vergine]] o [[Ferragosto]], è sempre Doomsday
* 11/4 e 22/8; 13/6 e 26/12 sono doomsday (particolarmente facili da ricordare a coppie perché basta raddoppiare tutte le cifre)
* I giorni di [[Novembre]] sono sempre uguali a quelli di [[Marzo]], quindi tutti i multipli di 7 sono Doomsday
*le seguenti coppie di date sono tutte doomsday e sono facili da ricordare perché basta sommare 1 a tutte le cifre: 14/3 e 25/4, 16/5 e 27/6, 11/7 e 22/8, 18/7 e 29/8, 15/8 e 26/9, negli anni non bisestili si aggiungono anche 10/1 e 21/2, 17/1 e 28/2, in quelli bisestili invece 11/1 e 22/2, 18/1 e 29/2.
*qualunque doomsday cade dall'11 in poi di un mese di 31 giorni la stessa data meno 10 del mese successivo sarà nuovamente doomsday, ad esempio il 14/3 è doomsday e lo è anche il 4/4.
*21/3, 23/5 e 25/7 (la somma delle cifre che compongono il giorno è uguale al numero del mese) sono tutti doomsday
 
==Passaggio 1: Determinare il giorno base del secolo==
 
Per determinare il giorno base del secolo, è necessario:
#identificare il secolo ''c'' di cui la data scelta fa parte, aggiungendo 1 alle prime due cifre del secolodell'anno (es. il 2012 fa parte del 21°XXI secolo perché 20 + 1 = 21). Per tale computo gli anni divisibili per 100 (es. 1900, 2000) vengono considerati come se facessero parte del secolo successivo a quello cui realmente appartengono (es. il 1900 fa parte del 20°XX secolo perché 19 + 1 = 20);
#sottrarre 1 da ''c'' e calcolare il resto della divisione per 4;
#moltiplicare ''c'' per 5;
#separatamente, sottrarre 1 da ''c'' e dividere la [[differenza]] per 4;
#sommareaggiungere il2 [[quoziente]]al avalore ''5c''ottenuto e riportare il valore in [[Aritmetica modulare|basemodulo 7]];.
#aggiungere 4 al valore ottenuto e riportare il valore in base 7.
 
Il risultato di queste operazioni sarà un valore compreso tra 0 (Domenica) e 6 (Sabato) e corrisponderà al giorno base del secolo.
<math>\left[\left({5c+\left\lfloor{\frac{c-1}{4}}\right\rfloor}\right) \bmod 7+{4}\right]\bmod 7=\mbox{giorno base del secolo}</math>
 
<math>\left[{5}\times{}\left({5c+\left\lfloor{\frac({c-1}{4}}\right\rfloor}\right) \bmod 74\right)+{42}\right]\bmod 7 =\mbox{giorno base del secolo}</math>
Ad esempio, il giorno base per il 21° secolo è martedì, perché:<br>
 
<math>\left[\left({5\times{21}+\left\lfloor{\frac{20}{4}}\right\rfloor}\right) \bmod 7+{4}\right]\bmod 7={2}=\mbox{martedì}</math>
Ad esempio, il giorno base per il 21°XXI secolo è martedì, perché:<br>
 
<math>\left[\left({5}\times{21}+\left\lfloor{\frac({20}{ \bmod 4}}\right\rfloor)}\right) \bmod 7+{42}\right]\bmod 7={2}=\mbox{martedì}</math>
 
===Calcolo rapido del giorno base del secolo===
Line 159 ⟶ 157:
# Doomsday 2100-2199 = 0 = domenica ("Nonesday": nessun giorno ancora in questo secolo)
# Doomsday 2000-2099 = 2 = martedì ("Y2K": acronimo di ''Year 2000'')
# Doomsday 1900-1999 = 3 = mercoledì ("We-in-this-day": il secolo di nascita di Conway ede idei suoi contemporanei)
# Doomsday 1800-1899 = 5 = venerdì ("Fivesday": il secolo con le 5 giornate di Milano)
 
Per tutti gli altri secoli è sufficiente aggiungere (o sottrarre) ripetutamente 4 alle prime due cifre dell'anno fino a riportarsi ad uno dei secoli noti (es. il Doomsday del secolo per l'anno 1587 è mercoledì, perché 15 + 4 = 19).
 
==Passaggio 2: determinareDeterminare il Doomsday dell'anno==
Per determinare il Doomsday dell'anno è necessario:
 
Line 170 ⟶ 168:
#dividere ''b'' per 4. Sia ''c'' il quoziente;
#sommare ''a'', ''b'' e ''c''. Sia ''d'' tale somma;
#riportare ''d'' in [[Aritmetica modulare|basemodulo 7]];
#sommare il valore ottenuto al valore del giorno base del secolo.
 
Line 182 ⟶ 180:
 
Ad esempio, applicando questo metodo al calcolo del Doomsday del 1966 si avrà:
:<math>\begin{matrix}\left({66 + \left\lfloor{\frac{66}{4}}\right\rfloor}\right) \bmod 7+\mbox{mercoledì} & = & \left(66+16\right) \bmod 7+3 & = & 18 = \mbox{lunedì}\end{matrix}</math>
 
===Il metodo "Dispari+11"===
Nel 2010 è stato ideato un metodo più semplice per trovare il Doomsday di un anno. È stato dimostrato<ref>Chamberlain Fong, Michael K. Walters: [httphttps://arxiv.org/abs/1010.0765 "Methods for Accelerating Conway's Doomsday Algorithm (part 2)"], 7th International Congress of Industrial and Applied Mathematics (2011).</ref> che tale metodo, chiamato "'''Dispari+11'''", è equivalente al calcolo di:
:<math>(y + \lfloor \frac{y}{4} \rfloor) \, \operatorname{mod} \, 7.</math>
 
Line 195 ⟶ 193:
#se ''T'' è dispari, aggiungere 11;
#dividere la somma per 2;
#se il [[quotoquoziente]] è dispari, aggiungere 11;
#riportare il valore ottenuto in [[Aritmetica modulare|basemodulo 7]];
#sottrarre da 7 il valore ottenuto.
 
Line 205 ⟶ 203:
#''T'' = 66 (''T'' è pari, dunque non è necessario aggiungere 11)
#66/2 = 33
#33 + 11 = 44 (il quotoquoziente è dispari, dunque è necessario aggiungere 11)
#44 mod 7 = 2
#7 − 2 = 5
#Doomsday 1966 = 5 + mercoledì = 5 + 3 = lunedì
 
A tal proposito, conviene far riferimento all'anno più vicino multiplo di 4 e poi addizionare 1, 2, 3 a seconda dell'anno. Inoltre il complemento a 7 del modulo (passaggi 5 e 6) possono essere sintetizzati considerando il multiplo di 7 maggiore al risultato del quoto della divisione.
==Passaggio 3: Determinare il giorno della settimana del giorno desiderato==
#''T'' = 1966 = 1964+2;
#64/2 = 32 (64 è pari quindi procedo alla divisione per 2.)
#Il più vicino multiplo di 7 superiore a 32 è 35 quindi il numero cercato è 3 (35-32)
 
Quindi per l'anno 1966 avremo 3 (numero secolo) + 2 (1966-1964) + 3 (Doomsday 1964) = lunedì.
 
=== Metodo MAMO con calcolo anni bisestili ===
 
# Prendere le ultime due cifre dell'anno (chiamiamole ''Y'');
# Calcolare il numero di anni bisestili passati fino a quell’anno (Y/4)=X.
# sommare ''Y e X, sia D tale somma''
# riportare ''D'' [[Aritmetica modulare|modulo 7]];
# sommare il valore ottenuto al valore del giorno base del secolo.
 
Ad esempio, il Doomsday dell'anno 1966 è lunedì, perché:
 
[66 + (66/4)] mod 7 + mercoledì = (66+16) mod 7 + 3 = 8 = lunedì
 
==Passaggio 3: Determinare il giorno della settimana del giorno desiderato==
Noto il Doomsday dell'anno in questione, il calcolo del giorno della settimana del giorno desiderato è molto semplice:
#identificare il [[Algoritmo Doomsday#Giorni di facile memorizzazione che cadono sempre nel Doomsday|Doomsday più vicino al giorno scelto]];
#sottrarre la data del doomsdayDoomsday più vicino dalla data da identificare
#aggiungere il valore del Doomsday dell'anno
#riportare il risultato ottenuto in [[Aritmetica modulare|basemodulo 7]]
 
Ad esempio, per calcolare in che giorno sia caduto il 13 settembre 2011:
Line 227 ⟶ 244:
#4 - 7 = -3
#-3 + 1 = -2 (il Doomsday del 2011 era lunedì, quindi il valore corrispondente è 1)
#-2 mod 7 = 5 = venerdì
 
==Osservazioni==
Line 236 ⟶ 253:
 
== Altri progetti ==
{{interprogetto|commons=Doomsday rule|preposizione=sull'}}
 
{{Portale|matematica}}
 
[[Categoria:Algoritmi|Doomsday]]
[[Categoria:Calendari]]