- Tornar a l'inici »
- expert , matemàtiques , Publica! »
- Pilar Bayer: Quin dia de la setmana vaig néixer?
Escrit per:
Cocociència
dissabte, 31 d’agost del 2013
Entrada escrita per Pilar Bayer Isant
La cançó diu:
El día que tu naciste
nacieron todas las flores [. . .]
Però, sabeu quin dia de la setmana era?
Aquí teniu una fórmula, deguda essencialment al matemàtic Carl F. Gauss, que us proporcionarà el dia de la setmana de qualsevol data que li demaneu:
$\boxed{x\equiv d + e + f + g + [g/4] \pmod{7}}$
De manera automàtica, per a determinar l'hora calculem mòdul 12 però observem que, en aquesta fórmula, per a determinar el dia de la setmana ens cal calcular mòdul 7. Quan calculem mòdul 7 sempre podem canviar un nombre pel residu de la seva divisió per 7. Els dies de la setmana es numeren començant per dilluns = 1, dimarts = 2, etc. Així, el dia de la setmana $x$ = 37 és un dimarts. Els nombres que corresponen als dies del mes i de l'any seran els habituals.
Les entrades de la fórmula són:
$x$ | = dia de la setmana que volem determinar |
$d$ | = dia del mes |
$m$ | = mes |
$e$ | = nombre màgic del mes, depèn de $m$ |
$y$ | = any |
$f,g$ | = nombres màgics de l'any, depenen de $y$ |
A més, $[g/4]$ denota la part entera de la divisió de $g$ per 4.
- Cas 1: si és $m \ge$ 3, les quantitats $c$ i $g$ són donades per$y=$100$c + g$, amb 0$\le g \le$ 99;és a dir, $c$ és donat pels dos primers dígits de $y$ i $g$, pels dos últims.
- Cas 2: si és $m =$ 1 o bé $m=$2, les quantitats $c$ i $g$ són donades per$y-$ 1=100$c + g$.Així si $y=$1714 tindrem que $c=$ 17 i $g=$ 14, si estem en el primer cas; i $c=$ 17 i $g=$ 13, si estem en el segon.Ara ens cal saber com es calculen els dos nombres màgics $e$ i $f$.El nombre màgic $e$ és donat en la taula següent:
$m$ 1 2 3 4 5 6 7 8 9 10 11 12 $e$ 0 3 2 5 0 3 5 1 4 6 2 4
El nombre màgic $f$ depèn de $c\pmod{4}$ i és donat en la taula següent:$c\pmod{4}$0123$f$0531Exemple 1. Calculem en quin dia de la setmana va caure l'11 de setembre de 1714. Tindrem que:$x=$ ?, $d=$ 11, $m=$ 9, $y=$ 1714.Les taules ens diuen que a $m=$ 9 li correspon $e=$ 4 i per a $c=$ 17 és $f=$ 5.A més, com que estem en el primer cas, és $g=$ 14.Ara ja podem aplicar la fórmula:$x=$ 11 + 4 + 5+ 14+ 3 $=$ 37 $\equiv$ 2 $\pmod{7}$.Per tant, el dia cercat va ser un dimarts.Exemple 2. Fem un exemple més recent: el 17 de setembre de 1982.$x=$ ?, $d=$ 17, $m=$ 9, $y=$ 1982.Els nombres màgics són $e =$ 4, $f =$ 1.$x=$ 17 + 4 + 1 + 82 + 20 $=$ 124 $\equiv$ 5 $\pmod{7}$.Per tant, el dia cercat era un divendres.Exemple 3. Quin dia de la setmana és avui, 31 d'agost de 2013?$x=$ ?, $d=$ 31, $m=$ 8, $y=$ 2013.Els nombres màgics són $e =$ 1, $f =$ 0.$x=$ 31 + 1 + 0 + 13 + 3 $=$ 48 $\equiv$ 6 $\pmod{7}$.Avui és dissabte!Observació final. La fórmula només és aplicable per a dates del calendari gregorià. Modificant només $f$ de manera escaient s'obté la fórmula per al calendari julià.Sobre l'autora
Font de la imatge: http://16cientifiquescatalanes.blogspot.com.es/2010/02/pilar-bayer-isant.html
Endavant Pilar! A veure si desbanques el Gauss! Per cert, entre els joves catalans de Mèxic, quan jo hi era, els "gaus" eren els tontos innocentment mal intencionats (v.gr. "no siguis gau", "ets un gau"). D'on podria haver sortit l'adjectiu? Tu ets el contrari d'un "gau", més aviat ets un(a) Gauss. Salut i satisfaccions.
ResponEliminaDesconeixia aquesta paraula. Coincideixo amb vostè, carpe!
EliminaGràcies per la curiositat!
A continuació us copio el codi font d'un programa escrit en C que implementa la fórmula:
ResponElimina#include
#include
#include
int main (void){
int d, m, y, c, e, f, g;
printf("Dia: ");
scanf("%d", &d);
printf("Mes: ");
scanf("%d", &m);
printf("Any: ");
scanf("%d", &y);
printf("El dia %d/%d/%d és un ", d, m, y);
if(m>=3){
g=y%100;
c=y/100;
}
else{
y--;
g=y%100;
c=y/100;
}
switch(m){
case 1: e=0; break;
case 2: e=3; break;
case 3: e=2; break;
case 4: e=5; break;
case 5: e=0; break;
case 6: e=3; break;
case 7: e=5; break;
case 8: e=1; break;
case 9: e=4; break;
case 10: e=6; break;
case 11: e=2; break;
case 12: e=4; break;
}
switch(c%4){
case 0: f=0; break;
case 1: f=5; break;
case 2: f=3; break;
case 3: f=1; break;
}
switch((d+e+f+g+g/4)%7){
case 0: printf("diumenge.\n"); break;
case 1: printf("dilluns.\n"); break;
case 2: printf("dimarts.\n"); break;
case 3: printf("dimecres.\n"); break;
case 4: printf("dijous.\n"); break;
case 5: printf("divendres.\n"); break;
case 6: printf("dissabte.\n"); break;
}
return 0;
}
Hola Andratx!
EliminaMoltes gràcies per la teva aportació. Aquest any he començat la carrera d'enginyeria informàtica i ja estic començant a aprendre el llenguatge C.
Provaré el codi, gràcies!
Ep, veig que hi ha un petit error en els "includes": per alguna raó no s'ha copiat allò que va a continuació. Les llibreries que s'han d'incloure són stdio.h, stdlib.h i math.h.
Elimina