Déterminer le jour de la semaine correspondant à une date donnée est un problème qui a fasciné les mathématiciens et les informaticiens pendant des siècles. Heureusement, il existe des algorithmes permettant de réaliser ce calcul, même mentalement, bien que cela puisse s'avérer complexe. Cet article explore différentes méthodes pour calculer le jour de naissance, en mettant l'accent sur l'approche algorithmique.
Algorithmes et Calcul du Jour de la Semaine
L'approche dCode
dCode propose un outil gratuit pour retrouver le jour de la semaine correspondant à une date. Ces outils sont conçus pour être une aide précieuse dans divers domaines, allant des jeux aux énigmes, en passant par les mathématiques et la résolution de problèmes quotidiens. Il est important de noter que certains algorithmes peuvent devenir inexacts pour les dates antérieures à 1900, car la gestion des jours de la semaine n'était pas toujours uniforme dans toutes les régions avant cette période.
Programme de Calcul Magique
Une méthode intéressante, bien que plus ludique, est celle du "programme de calcul magique". Dans cette approche, un magicien demande aux spectateurs d'effectuer une série d'opérations arithmétiques à partir du numéro de leur jour et de leur mois de naissance. Le résultat permet ensuite au magicien de deviner la date d'anniversaire.
Partie A : Programme de Calcul (A)
Le programme de calcul (A) consiste à multiplier le numéro du jour de naissance (j) par 12 et le numéro du mois de naissance (m) par 37, puis à additionner les deux résultats. Mathématiquement, cela se traduit par :
z = 12j + 37m
Lire aussi: Apaiser la douleur des coliques chez l'adulte
Une propriété intéressante de ce programme est que z et m sont congrus modulo 12, ce qui signifie que leur différence est divisible par 12. Cette congruence permet de retrouver le mois de naissance à partir du résultat z.
Partie B : Programme de Calcul (B)
Le magicien peut également utiliser un autre programme de calcul (B), défini par :
z = 12j + 31m
Dans ce cas, différentes méthodes peuvent être utilisées pour retrouver la date d'anniversaire, notamment :
- Algorithme de recherche exhaustive : Un algorithme peut être conçu pour tester toutes les combinaisons possibles de jours et de mois jusqu'à ce que la valeur de z corresponde au résultat obtenu par le spectateur.
- Utilisation des congruences : En utilisant les propriétés des congruences, il est possible de simplifier l'équation et de réduire le nombre de possibilités à tester. Par exemple, on peut démontrer que 7m et z ont le même reste dans la division euclidienne par 12.
- Résolution d'équations diophantiennes : L'équation 12x + 31y = z peut être résolue en utilisant les techniques de l'arithmétique modulaire.
Algorithme de Richard
Richard propose une méthode basée sur la division euclidienne pour déterminer le jour de la semaine d'une date de naissance. Voici les étapes à suivre :
Lire aussi: Comment refuser une assistante maternelle ?
- A : Année de naissance.
- D : Différence entre A et 1901.
- Q : Quotient de la division de D par 4.
- N : Nombre de jours entre le 1er janvier et la fin du mois précédant le mois de naissance. Il faut tenir compte des années bissextiles (divisibles par 4 ou par 400, mais pas par 100).
- J : Date du jour de naissance.
- S : Somme de D, Q, N, J et 1 (S = D + Q + N + J + 1).
- R : Reste de la division euclidienne de S par 7.
Le jour de la semaine correspondant à la date de naissance est alors déterminé par la valeur de R :
- R = 0 : Dimanche
- R = 1 : Lundi
- R = 2 : Mardi
- R = 3 : Mercredi
- R = 4 : Jeudi
- R = 5 : Vendredi
- R = 6 : Samedi
Exemple :
Si on est né le 14 juin 2008 (année bissextile) :
- A = 2008
- D = 2008 - 1901 = 107
- Q = 107 / 4 = 26 (quotient)
- N = 31 + 29 + 31 + 30 + 31 = 152
- J = 14
- S = 107 + 26 + 152 + 14 + 1 = 300
- R = 300 % 7 = 6
Donc, le 14 juin 2008 était un samedi.
Structures de Données et Algorithmes
Enregistrements (Structures)
En algorithmique, les enregistrements (ou structures) sont des structures de données qui permettent de regrouper des informations de différents types au sein d'une même entité. Par exemple, les informations concernant un étudiant (nom, prénom, date de naissance) peuvent être regroupées dans un enregistrement.
Avant de déclarer une variable de type enregistrement, il est nécessaire de définir son type, c'est-à-dire le nom et le type des champs qui le composent. Un type structuré peut être utilisé comme type pour des champs d'un autre type structuré.
Lire aussi: vérifier le cœur de bébé
Exemple :
Déclarer une structure Personne qui contient les champs : nom (chaîne de caractères), prenom (chaîne de caractères) et DateNaissance (structure composée du jour (entier), mois (entier) et année (entier)).
Tableaux d'Enregistrements
Il est également possible de créer des tableaux d'enregistrements. Chaque élément du tableau est alors une variable structurée, contenant plusieurs variables de type différent.
Exemple :
Dans une entreprise, on souhaite connaître les enfants des employés et leur date de naissance. On pourrait déclarer un tableau d'Employé, où chaque élément du tableau est un enregistrement contenant les informations de l'employé, y compris un tableau d'enregistrements représentant ses enfants et leurs dates de naissance.
L'Année Bissextile : Un Détail Crucial
Le calcul du jour de la semaine nécessite de prendre en compte les années bissextiles. Une année compte en réalité 365,242190 jours, soit environ 365 jours 5 heures 48 minutes 45,2 secondes. Pour compenser cette fraction de jour, on ajoute un jour supplémentaire (le 29 février) tous les 4 ans.
Cependant, pour affiner davantage la précision, une règle supplémentaire a été introduite : les années divisibles par 100 ne sont pas bissextiles, sauf si elles sont également divisibles par 400. Ainsi, l'année 2000 était bissextile, tandis que les années 1900, 1800 et 1700 ne l'étaient pas.
tags: #comment #calculer #son #jour #de #naissance
