Utilisateur:Leo2urlevan/Le 13 du mois tombe plus souvent un vendredi

Un article de Wikipédia, l'encyclopédie libre.

Le 13 est un nombre porteur de chance ou de malchance, selon certaines cultures. Les Vendredi treize seraient en particulier des jours de malheur ou de bonheur possible. Ce qui est réel (et scientifiquement prouvé), c'est que le 13 du mois tombe plus souvent un vendredi qu'un autre jour de la semaine.

Sommaire

[modifier] Principe

Une année ne dure pas exactement 365 jours mais précisément 365,24 jours. Cela provient du fait que si l'année durait réellement 365 jours, on prendrait, après des millénaires, du retard par rapport à la rotation du soleil, et les saisons seraient alors décalées (voir l'article Calendrier grégorien). En arrondissant, on dit communément qu'un an dure 365 jours et un quart de jour, ce qui explique que toutes les 4 années, on ait un jour en plus (4*1/4), dans le cadre d'une année bissextile.

Cependant, cela est encore faux, puisque la règle des années bissextiles explique qu'une année est bissextile si et seulement si elle est un multiple de 4, et pas un multiple de 100, ou bien si elle est un multiple de 400. Par exemple, 2008 est bissextile (2008 = 4 * 1002), 2000 l'est également (2000 = 400 * 5) mais 1900 n'est pas bissextile (1900 = 4 * 475 mais 1900 est un multiple de 100 ; en outre 1900 n'est pas un multiple de 400). Ainsi, on a eu par exemple : en 1896 une année bissextile, mais pas en 1900, la suivante n'étant qu'en 1904, donc il y a eu 8 ans avant d'avoir de nouveau une année bissextile, et non pas 4 comme d'habitude. Une année dure bien un peu de moins de 365,25 jours d'après le calendrier grégorien.

Le calendrier grégorien est cyclique de 400 ans : trois siècles constitués chacun de 24 cycles juliens (trois ans de 365 jours, puis une année de 366 jours) suivis de quatre années de 365 jours, puis un siècle constitué de 25 cycles juliens, on a donc en tout 365*400 jours sans compter ceux ajoutés avec les années bissextiles. Il y a 97 années bissextiles dans un cycle : en effet, sur 400 ans, 100 pourraient être bissextiles (toutes les années multiples de 4), mais les multiples de 100 ne sont pas des années bissextiles (par exemple, pour un cycle commençant en 1600, il y a 1700, 1800 et 1900 qui ne sont pas bissextiles) alors que le multiple de 400 (dans notre exemple, l'an 2000) en est une : il y a donc 3 années à retirer qui ne sont en fait pas bissextiles. On a donc, en un cycle, 400*365+97 jours, c'est à dire 146 097 jours, qui par ailleurs est un multiple de 7 : 146 097 = 7 * 20 871. Ce qui veut dire qu'au bout de 400 ans, la redistribution des jours de la semaine est exactement la même : comme le 1er janvier 2008 était un mardi, on peut en déduire que le 1er janvier 1608 était également un mardi.

[modifier] Mathématiques

L'arithmétique modulaire permet de calculer quel jour de la semaine tombera pour une date donnée, en raisonnant modulo 7. Par exemple, on sait bien que si un lundi tombe un 13 janvier, le 20 janvier sera également un lundi : inconsciemment, on fait le calcul 13+7 modulo 7. L'arithmétique modulaire rend les calculs cycliques. Calculer quel jour de la semaine tombera pour une date donnée s'appelle calculer le quantième du jour en question, que l'on peut aussi plus facilement trouver avec le Calendrier perpétuel.

En arithmétique modulo p (où p est un nombre entier naturel), si a est un nombre entier naturel, alors a+p=a. Tant qu'on ne tombe pas sur un nombre négatif, on peut retirer autant de fois que l'on veut le nombre modulo p ; cela revient à faire la division euclidienne de a par p et de récupérer le reste. Par exemple, 23 modulo 7 = 16 modulo 7 = 9 modulo 7 = 2 modulo 7 car si on enlevait une fois de plus 7, on tomberait sur -5 qui est négatif ; d'autre part, 23/7 = 3 et il reste 2, on tombe sur le même résultat.

Pour trouver quel jour de la semaine tombe pour une date donnée, on raisonne modulo 7, c'est à dire qu'on enlève autant de fois 7 qu'on le peut tant que le nombre obtenu n'est pas un nombre négatif. A chaque jour de la semaine, on attribue un numéro compris entre 0 et 6 : 0 pour le dimanche, 1 pour le mardi, 2 pour le mercredi, ..., 6 pour le samedi. Pourquoi ne pas numéroter les jours de 1 à 7 ? Dans ce cas là, vu que l'on va raisonner modulo 7, quand on arrivera sur le samedi noté numéro 7, on retombera sur le 0 parce que 7-7=0 n'est pas négatif, et le 0 n'aura pas de valeur de journée attribuée.

[modifier] Exemples

  • Supposons que nous nous plaçons un 23 octobre, quel jour tombera Noël, c'est à dire le 25 décembre ? Il suffit de calculer le nombre de jours de différence entre le 23 octobre et le 25 décembre. Entre le 23 octobre et le 24 octobre, il y a un jour. Entre le 23 et le 31, il y a 31-23=8 jours. Entre le 23 octobre et le 1er novembre, il y a 9 jours (un jour de plus). Entre le 23 octobre et le 30 novembre, il y a 29 jours de passés depuis le 1er novembre, donc 29+9=38 jours. Entre le 23 octobre et le 1er décembre, il y a 39 jours. Entre le 23 octobre et le 25 décembre, il y a 24 jours de passés depuis le 1er décembre, donc 39+24=63 jours en tout. On calcule le modulo : 63 = 9*7 + 0, donc 63 modulo 7 = 0, donc on retombe le même jour de la semaine que le 23 octobre : le 23 octobre et Noël tombent le même jour... de la semaine.
  • Maintenant, on veut savoir quel jour tombera le 31 décembre. Entre le 25 et le 31, il y a 31-25=6 jours, donc il y a 63+6=69 jours entre le 23 octobre et le 31 décembre. Par exemple, si le 23 octobre tombe un lundi, c'est à dire un jour numéroté 1 selon la convention ci-dessus, on aurait 1+69=70 et 70=7*10 donc 70=0 modulo 7, et le 0 correspond au dimanche, donc le 31 décembre tomberait un dimanche dans une telle situation.

[modifier] Retour au problème

Le problème est de montrer que le 13ème jour du mois tombe le plus souvent un vendredi qu'un autre jour. On a vu qu'il fallait effectuer un calcul semblable à ceux montrés en exemple, mais ceux, sur 400 ans, en regardant chaque mois quel jour tombera le 13 du mois. Il y aurait donc 4800 (4800=400*12) jours à regarder, et un nombre de calculs proportionnel à cette valeur pour trouver le résultat. La preuve est en fait statistique. On effectue un algorithme qui fera le travail à notre place sur ordinateur.

[modifier] Programmation

[modifier] Note

Le programme sera écrit en langage algorithmique, pour une démonstration en langage C, voyez dans les liens externes.

[modifier] Algorithmique

Début


JoursParMois : tableau de 12 entiers // on stockera dedans le nombre de jours qu'il y a dans un mois donné

nombreJours : tableau de 7 entiers // on stockera dedans le nombre d'occurrences d'un jour donné (le nombre de fois que le lundi 13 tombe, que le mardi 13 tombe, etc...

Jour, PremierJour, Année : entiers

Mod1, Mod2, Mod3 : entiers // ce sont en fait les résultats de 3 opérations de calculs de modulo

i, j, k : entiers // ce sont en fait trois éléments de compteurs

// On remplit les éléments qui disent le nombre de jours par mois : le 0 est le janvier, le 1 est le février... le 11 est décembre.

JoursParMois[0] <- 31

// On omet exprès de ne pas mettre de jours pour février, cela sera traité dans une boucle

JoursParMois[2] <- 31

JoursParMois[3] <- 30

JoursParMois[4] <- 31

JoursParMois[5] <- 30

JoursParMois[6] <- 31

JoursParMois[7] <- 31

JoursParMois[8] <- 30

JoursParMois[9] <- 31

JoursParMois[10] <- 30

JoursParMois[11] <- 31


PremierJour <- 0 // peu importe le premier jour, l'algorithme va étudier tous les jours sur un cycle du calendrier, tous les cas seront passés au crible

Annee <- 2008 // peu importe également la première année, pour la même raison

Annee <- Annee - 1 // On décrémente l'année de 1, elle sera réincrémentée au début de la boucle.

Jour <- (16 + PremierJour) modulo 7; // On se place sur le 13 décembre de l'année précédente pour que la boucle fonctionne (16 = 35-31+13-1)

Pour i allant de 1 à 400 inclus par pas de 1, faire

Annee <- Annee + 1

// calcul des modulos de l'année (pour déterminer si elle est bissextile)

mod1 <- Annee modulo 4;

mod2 <- Annee modulo 100;

mod3 <- Annee modulo 400;

// détermination du cas année bisextile ou pas

si ( (mod1 = 0 et mod2 différent de 0) ou (mod2 = 0 et mod3 = 0) )

alors

JoursParMois[1] <- 29

sinon

JoursParMois[1] <- 28

fin_Si

// Boucle pour chaque mois de l'année

Pour j allant de 0 à 11 compris par pas de 1, faire

k <- (11+j) modulo 12 // on ajoute en fait en premier le nombre de jours de décembre en premier, puis celui de janvier en deuxième, etc...

Jour <- (Jour + JoursParMois[k]) modulo 7

nombreJours[Jour] <- nombreJours[Jour] + 1 // on rajoute 1 au compteur d'occurences du jour noté Jour

fin_Pour

fin_Pour // fin du pour principal

Afficher "Le nombre de lundis 13 est : ",nombreJours[1]

Afficher "Le nombre de mardis 13 est : ",nombreJours[2]

Afficher "Le nombre de mercredis 13 est : ",nombreJours[3]

Afficher "Le nombre de jeudis 13 est : ",nombreJours[4]

Afficher "Le nombre de vendredis 13 est : ",nombreJours[5]

Afficher "Le nombre de samedis 13 est : ",nombreJours[6]

Afficher "Le nombre de dimanches 13 est : ",nombreJours[0]


Fin

[modifier] Conclusion

Cet algorithme n'est pas le seul possible, et pas le plus performant, mais il marche.

Un tel algorithme nous donne les résultats suivants :

 Le nombre de lundis 13 est 685
 Le nombre de mardis 13 est 685
 Le nombre de mercredis 13 est 687
 Le nombre de jeudis 13 est 684
 Le nombre de vendredis 13 est 688
 Le nombre de samedis 13 est 684
 Le nombre de dimanches 13 est 687

L'on voit finalement bien le résultat : le vendredi 13 tombe au moins une fois de plus que les autres jours : une fois de plus que le dimanche et le mercredi, trois fois de plus que le lundi et le mardi, quatre fois de plus que le jeudi et le samedi. Ainsi, le 13 du mois tombe plus souvent un vendredi qu'un autre jour.

[modifier] Liens externes