- Progressivement, il apparaît que toutes les positions sont soit gagnantes, soit perdantes. Cela provient en fait de la symétrie du rôle des joueurs.
- Il apparaît aussi que les positions perdantes \([1,n,p]\) sont de la forme \([1,n,n+1]\) avec \(n\) pair, ou autrement dit, \([1,n,n-1]\) avec \(n\) impair. Il y a donc pour chaque valeur de \(n\) une unique valeur possible pour \(p\) correspondant à une position perdante, qui sera \(n+1\) ou \(n-1\) en fonction de la parité de \(n\).
- Cela peut s'exprimer plus simplement sous la forme \(p=n \oplus 1\) où \( \oplus \) est la fonction d'addition binaire (appelée également ou exclusif ou XOR en informatique).
- Les premières positions perdantes \([m,n,p]\) sont \([2,4,6]\), \([2,5,7]\), \([2,7,9]\) et \([2,8,10]\) ; le cas général est \([2,n,n \oplus 2]\).
- Les positions perdantes à trois lettres \([m,n,p]\) sont \([m,n,m \oplus n]\).
- On peut alors conjecturer que plus généralement, les positions perdantes \([m_i]\) sont celles pour lesquelles \(\bigoplus_{m_i} = 0\) (cette conjecture se démontre facilement, cf la section 2.4 du lien en fin de texte).
Par définition d'une position gagnante, il est toujours possible de partir de n'importe laquelle de celles-ci pour mettre l'adversaire en position perdante en un unique coup. Et réciproquement jouer une position perdante mettra systématiquement l'adversaire en position gagnante. Les positions gagnantes sont toutes celles pour lesquelles \(\bigoplus_{m_i} \neq 0\).
En pratique, il n'est pas complètement trivial de jouer un bon coup à partir d'une position gagnante. Mais ce n'est pas trop difficile non plus. Illustrons cela sur l'exemple du défi, en écrivant la décomposition binaire de chaque nombre d'allumettes constituant les lettres (avec bit le plus fort à gauche) :
[ b : 4 2 1 ]
[ 5 : 1 0 1 ]
[ 6 : 1 1 0 ]
[ 4 : 1 0 0 ]
On peut agir sur n'importe quelle lettre qui a le bit le plus fort allumé, c'est-à-dire toutes dans notre cas, et la transformer de façon à avoir une somme binaire totale nulle. Il suffit pour cela de la transformer en la somme binaire de toutes les autres lettres, c'est-à-dire faire en sorte que le nombre de 1 dans chaque colonne soit pair. L'intérêt d'avoir le bit le plus fort allumé, c'est d'être sûr que le nombre d'allumettes résultant pour la lettre transformée sera plus petit.
Ainsi à partir de \([5,6,4]\) on a trois choix possibles : \([2,6,4]\), \([5,1,4]\), et \([5,6,3]\), qui mettent toutes l'adversaire en position perdante.
Ce jeu est connu sous le nom de jeu de Nim (en France il est également dénommé jeu de Marienbad en raison de sa présence dans le film L'année dernière à Marienbad), et il est décrit en détails entre autres dans le classique Berlekamp, Conway, & Guy : Winning Ways for your Mathematical Plays. Il y a des variations et des généralisations bien plus complexes.
Note : ce texte sur la théorie des jeux a une approche didactique assez similaire à celle présentée ici.
13 derniers coms