Le jeu de Nim, très simple du fait de ses règles, peut, à première vue, nous paraître très banal, alors qu’en réalité, comme nous allons le voir, il est étroitement lié à nos disciplines que sont les mathématiques et l’informatique.

Pour mieux illustrer ceci, cela m’a amené à m’interroger sur la problématique suivante : comment un joueur peut-il procéder pour gagner au jeu de Nim, et de quelle manière est-ce lié aux mathématiques et aux sciences informatiques ?

Pour répondre à cela, je vais, dans un premier temps, présenter le concept du jeu en lui-même ainsi que l’astuce gagnante à tous les coups en expliquant cette dernière ; et dans un second temps, mettre en lumière le lien avec les disciplines que nous étudions, à savoir les mathématiques et les sciences informatiques.

Concept du jeu, règles et astuce pour gagner

Le jeu de Nim et les règles du jeu

Il s’agit d’un jeu avec deux joueurs, qui ont sur le terrain de jeu 16 objets. Ils doivent, à tour de rôle, tirer sans remise, au choix, 1, 2 ou 3 objets sur le terrain. Le joueur qui récupère le dernier objet remporte la partie.

Paradoxalement, il n’y a pas de règle universelle pour définir qui joue en premier, alors que, comme nous allons le voir, c’est justement LA chose qui détermine le gagnant, à condition, évidemment, de jouer de manière rationnelle.

Astuce gagnante et explication

Le jeu de Nim peut paraître assez aléatoire intuitivement, alors qu’en réalité, c’est tout le contraire, car celui qui joue en deuxième est certain de gagner à tous les coups (à condition d’appliquer l’astuce gagnante suivante).

En effet, pour s’assurer la victoire, celui qui joue en deuxième doit faire en sorte de laisser à son adversaire à chaque fois un nombre d’objets multiple de 4, comme c’est le cas lors du premier coup où il y a 16 objets à prendre. Ainsi, son adversaire ne pourra jamais lui laisser un multiple de 4 à son tour, car il peut prendre maximum 3 objets, et lors de l’avant-dernier coup, l’adversaire aura devant lui un terrain de jeu avec 4 objets restants. Il sera ainsi obligé d’en laisser au plus 3 après avoir joué, sans pouvoir prendre les 4, et le joueur en question pourra ainsi prendre le dernier objet.

Notons bien que si le joueur à jouer en second joue ne serait-ce qu’un tour de manière irrationnelle, c’est son adversaire qui, en jouant de manière rationnelle, s’assure la victoire, en profitant de l’erreur de son adversaire pour lui laisser un nombre d’objets correspondant à un multiple de 4.

Lien avec les mathématiques et l’informatique

Mathématiques : astuce déterminée mathématiquement

Pour illustrer ceci, nous pouvons démontrer mathématiquement cette astuce par nous-mêmes.

Soit r le nombre d’objets restants sur le terrain.

Soit n nombre maximal d’objets avec lequel le joueur doit se retrouver sur le terrain de jeu pour être en mesure de prendre le dernier, qui est logiquement égal au nombre maximal qu’un joueur a le droit de tirer. Nous savons, d’après les règles, que n=3.

Soit t la variable associée au nombre d’objets que le joueur a le droit de tirer. Nous savons, toujours d’après les règles, que n est compris entre 1 et 3.

Nous en déduisons donc que pour assurer ceci, le joueur doit mettre son adversaire dans une situation où r-t est non nul et inférieur ou égal à n pour tout t.

Avec r=4 :

Pour t=1, r-t=3

Pour t=2, r-t=2

Pour t=3, r-t=1

Donc le nombre r au moment du tour de l’adversaire doit à un moment être égal à 4 pour assurer la victoire. Comme la variable t est la même au cours du jeu, la boucle se répète, et un nombre r chez l’adversaire correspondant à un multiple de 4 assure également la victoire. 16 étant un multiple de 4, r=16 assure la défaite de l’adversaire. Comme le nombre d’objets initialement présents sur le terrain de jeu est de 16, celui qui joue en premier est à r=16 dès le début du jeu et est assuré de perdre si son adversaire joue de manière rationnelle.

Informatique : astuce algorithmique

On se rend ainsi compte que pour gagner, le joueur qui joue en second doit suivre un cheminement algorithmique tout au long du jeu, que nous avons déduit de ce qui a précédé et que nous allons exposer, en notant t1 le nombre d’objets tirés par le joueur ayant commencé, et t2 celui d’objets que doit tirer celui qui a joué en second.

C’est un algorithme que le joueur doit répéter jusqu’à avoir récupéré le dernier objet présent sur le terrain de jeu.

Il y a donc une similitude avec les algorithmes informatiques, où on donne des instructions à l’ordinateur, avec des règles à suivre dans chacun des cas de figure possibles, afin qu’il exécute une tâche. Ici, les règles correspondent au nombre t2 à appliquer en fonction du t1, et la tâche consiste à remporter la partie.

Ainsi, avec les règles définies précédemment, il est possible d’établir facilement un code informatique où l’ordinateur battrait systématiquement le joueur en demandant à celui-ci de jouer en premier et de rentrer le nombre d’objets qu’il souhaite prendre, et en retirant à son tour le nombre d’objets correspondant, puis en affichant le nombre d’objets restants et en lui demandant de refaire l’action. Après 4 tours, l’ordinateur annoncera au joueur sa défaite.

Le code ressemblerait alors à ceci (et devrait être adapté au langage de programmation utilisé) :

Début de la tâche

AFFICHER : Il y a 16 objets restants. Rentrez en un seul chiffre le nombre d’objets t1 que vous souhaitez prendre : 1, 2 ou 3.

r=16

Si t1=1, alors t2=3,

Si t1=2, alors t2=2

Si t1=3, alors t2=1

Sinon AFFICHER : Donnée invalide, veuillez réessayer en indiquant un chiffre compris entre 1 et 3.

Fin de la tâche

Début de la tâche

AFFICHER : Vous avez tiré [t1] objets. Je tire [t2] objets. Il y a [16-4x] objets restants. Rentrez en un seul chiffre le nombre d’objets t1 que vous souhaitez prendre : 1, 2 ou 3.

où x serait le nombre de tours après le tour initial

r=16-4x

Si t1=1, alors t2=3,

Si t1=2, alors t2=2

Si t1=3, alors t2=1

Sinon AFFICHER : Donnée invalide, veuillez réessayer en indiquant un chiffre compris entre 1 et 3.

Répéter la tâche 3 fois.

Fin de la tâche

Début de la tâche

AFFICHER : Vous avez tiré [t1] objets. Je tire [t2] objets. Il y a 0 objet restant. Vous avez perdu.

Fin de la tâche

Conclusion

En conclusion, nous pouvons donc dire qu’il existe une astuce aussi simple que les règles du jeu pour gagner au jeu de Nim, et qui garantit la victoire à celui qui joue en second, ou bien à celui qui joue en premier si son adversaire se trompe. C’est une astuce simple, mais conçue et rendue possible grâce à la connaissance de nos deux disciplines, calculée mathématiquement et correspondant à un algorithme informatique à suivre.


Source bibliographique

Académie Nancy Metz. (s. d.). Le jeu de Nim. danetach.fr. Consulté le 23/12/2025 : dane.daneteach.fr