F-Nim

Liste des GroupesRevenir à frj enigmes 
Sujet : F-Nim
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.rec.jeux.enigmes fr.comp.lang.python
Suivi-à : fr.rec.jeux.enigmes
Date : 21. Oct 2022, 11:10:37
Autres entêtes
Organisation : There's no cabale
Message-ID : <titnme$31k8$1@cabale.usenet-fr.net>
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
[diapublication, suivi vers fr.rec.jeux.enigmes]

Bonjour,

Voici un autre jeu qui, une fois résolu stratégiquement, pourra fournir
le sujet d'une programmation en Python[¹].

Comme dans le(s) jeu(x) de Nim, c'est un jeu à deux joueurs dans lequel
il s'agit de retirer des allumettes jusqu'à ce qu'il n'en reste plus.
Voici la règle complète.

==========================================================================
On a un seul tas de N allumettes. Le premier joueur retire le nombre
d'allumettes qu'il veut, sa seule interdiction étant de retirer la
totalité du tas. Ensuite, chaque joueur retire un nombre d'allumettes
de son choix, entre 1 allumette et deux fois le nombre d'allumettes
que vient de retirer son adversaire. Le gagnant est celui qui retire la
dernière allumette et vide le tas.
==========================================================================

Il s'agit de trouver la meilleure stratégie pour chaque joueur en fonction
de la taille N du tas au départ.

==========================================================================
Prenons un exemple avec N = 15.
Le premier joueur A doit retirer un nombre d'allumettes compris entre
1 et 14 (il n'a pas le droit de tout retirer au premier coup).

Supposons que A retire 4 allumettes, il en reste 11.
Alors B peut retirer n'importe quel nombre entre 1 et 8 (8 = 2×4).
B retire 3 allumettes, il en reste 8.
A peut retirer n'importe quel nombre entre 1 et 6 (6 = 2×3).
A retire 1 allumette, il en reste 5.
B peut retirer n'importe quel nombre entre 1 et 2 (2 = 2×1)
B retire 1 allumette, il en reste 4.
A peut retirer n'importe quel nombre entre 1 et 2 (2 = 2×1)
A retire 1 allumette, il en reste 3.
B peut retirer n'importe quel nombre entre 1 et 2 (2 = 2×1)
B retire 2 allumettes, il en reste 1.
A retire la dernière allumette, il a gagné.

Noter que B aurait pu ne retirer qu'une allumette à son dernier coup,
mais ça n'aurait rien changé parce que A aurait pu retirer les deux
dernières allumettes et gagner quand même.
==========================================================================


[¹] Pour info, j'ai eu un tel programme (pas en python !) dans une
calculette TI 58 dotée d'une mémoire (programme + données) de 480
octets. Ce programme était capable de gagner systématiquement dès
qu'il était dans une situation permettant de le faire. Je crois même
que le programme pouvait tourner sur une TI 57 (seulement 50 octets
de mémoire disponibles pour le programme, les données étant à part).

--
Olivier Miakinen

Date Sujet#  Auteur
21 Oct 22 * F-Nim47Olivier Miakinen
21 Oct 22 +* Re: F-Nim4Jacques Mathon
21 Oct 22 i`* Re: F-Nim3Olivier Miakinen
21 Oct 22 i `* Re: F-Nim2Jacques Mathon
21 Oct 22 i  `- Re: F-Nim1Olivier Miakinen
21 Oct 22 +* Re: F-Nim7Dominique
21 Oct 22 i`* Re: F-Nim6Olivier Miakinen
21 Oct 22 i +* Re: F-Nim4Olivier Miakinen
22 Oct 22 i i`* Re: F-Nim3Dominique
22 Oct 22 i i `* Re: F-Nim2Dominique
22 Oct 22 i i  `- Saisie mini/maxi (was: F-Nim)1Olivier Miakinen
21 Oct 22 i `- Re: F-Nim1Olivier Miakinen
22 Oct 22 `* Re: F-Nim35Olivier Miakinen
4 Nov 22  `* Re: F-Nim34Jacques Mathon
5 Nov 22   `* Re: F-Nim33Olivier Miakinen
5 Nov 22    `* Re: F-Nim32Olivier Miakinen
6 Nov 22     `* Re: F-Nim31Jacques Mathon
6 Nov 22      `* Re: F-Nim30Olivier Miakinen
6 Nov 22       `* Re: F-Nim29Jacques Mathon
6 Nov 22        +* Re: F-Nim27Olivier Miakinen
7 Nov 22        i`* Re: F-Nim26Jacques Mathon
7 Nov 22        i +* Re: F-Nim24Olivier Miakinen
26 Nov 22        i i`* Un indice : F-Nim23Olivier Miakinen
27 Nov 22        i i `* Re: Un indice : F-Nim22Jacques Mathon
28 Nov 22        i i  `* Re: Un indice : F-Nim21Olivier Miakinen
29 Nov 22        i i   +* Re: Un indice : F-Nim2Jac
30 Nov 22        i i   i`- Re: Un indice : F-Nim1Olivier Miakinen
29 Nov 22        i i   `* Re: Un indice : F-Nim18Jacques Mathon
29 Nov 22        i i    +* Re: Un indice : F-Nim15Jac
29 Nov 22        i i    i`* Re: Un indice : F-Nim14Jacques Mathon
30 Nov 22        i i    i `* Re: Un indice : F-Nim13Jac
30 Nov 22        i i    i  `* Re: Un indice : F-Nim12Jacques Mathon
19 Dec 22        i i    i   `* [Solution] F-Nim11Olivier Miakinen
19 Dec 22        i i    i    +* Re: [Solution] F-Nim4Jac
20 Dec 22        i i    i    i`* Re: [Solution] F-Nim3Olivier Miakinen
21 Dec 22        i i    i    i `* Re: [Solution] F-Nim2Gerardus
21 Dec 22        i i    i    i  `- Re: [Solution] F-Nim1Olivier Miakinen
20 Dec 22        i i    i    `* Re: [Solution] F-Nim6Dominique
20 Dec 22        i i    i     `* Re: [Solution] F-Nim5Jacques Mathon
20 Dec 22        i i    i      `* Re: [Solution] F-Nim4Dominique
20 Dec 22        i i    i       `* Re: [Solution] F-Nim3Olivier Miakinen
21 Dec 22        i i    i        `* Re: [Solution] F-Nim2Dominique
21 Dec 22        i i    i         `- Re: [Solution] F-Nim1Olivier Miakinen
30 Nov 22        i i    `* Re: Un indice : F-Nim2Olivier Miakinen
30 Nov 22        i i     `- Re: Un indice : F-Nim1Jacques Mathon
13 Nov 22        i `- Re: F-Nim1Olivier Miakinen
6 Nov 22        `- [aide python] Re: F-Nim1Olivier Miakinen

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal