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}$
     0 
     1 
     2 
     3 
    $f$
    0
    5
    3
    1

    Exemple 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à.

{ 5 comentarios ... llegeix-los a sota o afegeix-ne un }

  1. 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.

    ResponElimina
    Respostes
    1. Desconeixia aquesta paraula. Coincideixo amb vostè, carpe!

      Gràcies per la curiositat!

      Elimina
  2. A continuació us copio el codi font d'un programa escrit en C que implementa la fórmula:

    #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;
    }

    ResponElimina
    Respostes
    1. Hola Andratx!
      Moltes 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!

      Elimina
    2. 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

Entrada a l'atzar

Què diuen al Twitter?

Traductor

- Copyright © CocoCiència - Powered by Blogger and Metrominimalist -