Path: ...!news.mixmin.net!aioe.org!Z3dtOrGGIt5I0j0O5eDDkQ.user.46.165.242.91.POSTED!not-for-mail From: Jacques Mathon Newsgroups: fr.rec.jeux.enigmes Subject: Re: F-Nim Date: Sun, 6 Nov 2022 10:36:29 +0100 Organization: Aioe.org NNTP Server Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gioia.aioe.org; logging-data="17196"; posting-host="Z3dtOrGGIt5I0j0O5eDDkQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.3 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: fr-FR Bytes: 3042 Lines: 54 Le 05/11/2022 à 17:50, Olivier Miakinen a écrit : > Le 05/11/2022 17:35, je répondais à Jacques Mathon : >> >> Au début du jeu, le programme demande de choisir un pourcentage. Supposons >> que j'aie choisi 80. Alors le programme avant de jouer commence à tirer au >> hasard un nombre entre 0 et 100. Si ce nombre est inférieur à 80, alors il >> applique la stratégie optimale pour ce coup. Sinon, il joue un nombre tiré >> au hasard entre 1 et le maximum permis (quand même plus petit que le tiers >> du nombre restant si c'est possible). >> >>> Question subsidiaire: n est-il borné ? >> >> Non. La stratégie est valable quel que soit N. D'ailleurs Python ne limite >> la taille des entiers que selon la taille mémoire disponible, ce qui fait >> qu'en pratique il n'y a pas vraiment de limite pour une partie de durée >> raisonnable. OK ! > Je vais donner ci-dessous le programme en Python (presque complet). > > > La partie du programme qui réalise la stratégie optimale est la fonction > 'choix(have, maxi)' pour laquelle le paramètre 'have' est le nombre d'objets > restant et le paramètre 'maxi' est le nombre maximum que le programme a le > droit de retirer. > > Voici cette fonction, dans laquelle j'ai remplacé les caractères non blancs > de la fin par des '#' : > ============================================================================= > def choix(have, maxi): > while True: > if have <= maxi: > return have > ## # # ## # > ##### # # ##### > ## # # ## ### > #### ## # > ============================================================================= > > Comme vous pouvez le voir, l'algorithme est *trés* court. Vu que nous sommes sur frje, je considère ça comme une énigme à résoudre. :-) Si j'ai bien compris la partie masquée permet de trouver le meilleur coup possible. Je vais chercher. Juste pour être sûr... Est-ce que chaque # cache un et un seul caractère ? Amicalement -- Jacques