E549 - La marelle des matheux [*** à la main]
Pour jouer à la marelle des matheux, on trace 32 cases numérotées de 1 à 32 et le ciel en forme de demi-cercle qui jouxte la case n°1. Un certain nombre de billes sont placées dans les cases, pas nécessairement toutes. Le but du jeu est d’amener toutes les billes au ciel en
respectant la règle suivante : on peut prendre toutes les billes d’une case quelconque n° k dès lors qu’elle contient exactement k billes. On répartit alors k – 1 billes dans les cases
numérotées dans l’ordre décroissant de k – 1 à 1 à raison d’une bille par case et la kième bille va au ciel. Le jeu se poursuit aussi longtemps que la règle le permet et le gain est acquis si toutes les billes sont arrivées au ciel.
Trouver la répartition initiale du plus grand nombre possible de billes qui permet de gagner .
Solution
On établit un tableau à double entrée qui donne pour chacune des cases numérotées de 32 à 1 dans l’ordre décroissant les variables suivantes:
- n(k) le nombre initial de billes placées dans la case n°k avec k varaint de 1 à 32, - t(k) le nombre de billes transférées à la case n°k en provenance des cases
k+1,k+2,...,32,
- p(k) le nombre total de billes transitant par la case n°k, - v(k) le nombre de fois où la case n°k est vidée
On remplit la première ligne du tableau qui correspond à la case n° 32. Initialement on place au maximum 32 billes dans cette case n°32. D’où n(32) = 32, t(32) = 0, p(32) = 32 et v(32) = 1.
On a les relations de récurrence suivantes dans lesquelles on détermine les variables de la case n° (k – 1) : t(k-1), p(k-1), n(k-1) et v(k-1) en fonction des variables t(k), p(k), n(k) et v(k) supposés connues:
1) Le nombre de billes transférées à la case n°(k-1) est égal au nombre de billes
transférées à la case n°k + nombre de fois où la case n°k est vidée. D’où : t(k-1) = t(k) + v(k).
2) Le nombre total de billes p(k) passant par la case n° (k-1) est nécessairement un multiple m entier de k – 1 ,sinon cette case ne pourrait jamais être complètement vidée. La valeur maximale de m est Ent[ 1+ t(k-)1)/ (k-1)] où Ent[ ] désigne la partie entière par défaut.Toute valeur entière de m supérieure à Ent[ 1+ t(k-)1)/ (k-1)]
entrainerait un nombre initial de billes dans la case n° (k-1) supérieur à (k – 1) et là encore cette case ne pourrait jamais être vidée. D’où p(k-1) = (k-1)*Ent [1+ t(k-1) / (k- 1) ].
3) On en déduit le nombre initial de billes à placer dans la case n°(k-1) : n(k-1) = p(k-1) – t(k-1) avec n(k – 1) k – 1 et le nombre de fois où l’on vide la case n°(k-1) : v(k-1)
= p(k-1) / (k-1)
Le tableau ci-après donne alors en 4ème colonne la répartition initiale du plus grand nombre possible de billes selon le numéro de chaque case.
Le nombre total de billes est égal à 359.
Le mode opératoire est simple : on vide systématiquement les cases pleines dont le nombre de billes est égal au numéro de la case en commençant par celle qui est la plus proche du ciel.
C’est ainsi que dans la répartition initiale, les cases pleines sont numérotées 1,10,12,16 et 32.
On vide donc la case n°1 puis la case n°10 ce qui a pour effet de remplir les cases n°7 et n°2 et à nouveau la case n°1. On vide à nouveau la case n°1 puis la case n°2 puis à nouveau la case n°1 puis la case n°7 etc...