Re: Programmer le jeu "le compte est bon"

Liste des GroupesRevenir à fcl python 
Sujet : Re: Programmer le jeu "le compte est bon"
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.lang.python
Date : 13. Feb 2022, 12:51:33
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87pmnrnioa.fsf@universite-de-strasbourg.fr.invalid>
References : 1
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
ShahinaMohamed <nospam_shahina94@hotmail.fr.invalid> writes:

Dans le cadre d’un mini-projet à l’université je dois coder le jeu «
Le compte est bon ». Le jeu est issu de l’émission des chiffres et des
lettres : 6 nombres parmi {1,2,3,4,5,6,7,8,9,10,25,50,75,100} sont
tirés au sort (tirage avec remise). Ensuite, avec ces chiffres, nous
devons réaliser des opérations mathématiques (+,-,/,x) pour trouver un
autre nombre tiré au hasard entre 101 et 999.

Comme dit Stefan, c'est un problème difficile, et c'est un problème
d'algorithmique plus que de Python. Note déjà qu'il n'y a pas forcément
de solution (par exemple, si on tire 6 fois 1, il sera difficile de
produire 7 ou un nombre supérieur à 9 -- il me semble que chaque nombre
produit ne peut être utilisé qu'une seule fois).

Voilà une stratégie possible avec une liste initiale L et un but B :

- on choisit deux nombres N1 et N2 de L et une operation "o"
- on retire N1 et N2 de L, et on y ajoute le résultat (N1 "o" N2)
- puis on recommence avec ce nouveau jeu

Mais comme on peut choisir, il y a plusieurs possibilités. Il n'y a
pas vraiment de critère pour choisir, on essaie toutes les possibilités.
Au premier coup, avec 6 nombres, on a 6*5 choix du couple de nombres, et
4 opérations, donc 120 possibilités. Pour *chacune* de ces possibilités,
on a une nouvelle liste, mais avec seulement 5 nombres, et chacune de
ces listes permet de "générer" 5*4*4 (80) nouvelles listes. Etc.

Evidemment, si à n'importe quel moment on trouve une liste qui contient
B, on peut s'arrêter. Ou alors continuer, histoire de voir si il n'y a
pas une autre solution, peut-être plus rapide. Si on continue toujours,
on aura à la fin exploré (6*5*5*4*4*3*3*2*2*1)*4 listes.

J'ai fait l'hypothèse qu'on ne peut pas réutiliser un nombre. Si on
peut, alors il y a encore plus de possibilités, et on n'est même pas sûr
que l'agorithme va s'arrêter. Vérifie ce que dit l'énoncé.

En fait, si tu suis cette stratégie, tu verras que certaines listes sont
examinés plusieurs fois, parce que deux des opérations sont
commutatives, et donc l'ordre du choix des nombres est sans importance
pour ces deux opérations -- mais pas pour les deux autres. Essaye
d'écrire la formule exacte pour le nombre de possibilités, ce n'est pas
très dur.

De même si le même nombre est présent plusieurs fois dans la liste, on
produit plein de listes similaires. Bon, tu peux garder ce genre
d'optimisation pour plus tard je pense. Vérifie quand même ce que dit
l'énoncé.

-- Alain.

Date Sujet#  Auteur
13 Feb 22 * Programmer le jeu "le compte est bon"4ShahinaMohamed
13 Feb 22 +- Re: Programmer le jeu "le compte est bon"1Alain Ketterlin
13 Feb 22 +- Re: Programmer le jeu "le compte est bon"1yves
28 May 22 `- Re: Programmer le jeu "le compte est bon"1Mc Beth

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal