Deutsch   English   Français   Italiano  
<87pmnrnioa.fsf@universite-de-strasbourg.fr.invalid>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!aioe.org!Faqf6A55NG1s8DSVkh3L9A.user.46.165.242.75.POSTED!not-for-mail
From: Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid>
Newsgroups: fr.comp.lang.python
Subject: Re: Programmer le jeu "le compte est bon"
Date: Sun, 13 Feb 2022 11:51:33 +0100
Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg
Message-ID: <87pmnrnioa.fsf@universite-de-strasbourg.fr.invalid>
References: <KNmdnQlSbPpcpJX_nZ2dnUU7_83NnZ2d@giganews.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Injection-Info: gioia.aioe.org; logging-data="26265"; posting-host="Faqf6A55NG1s8DSVkh3L9A.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:5OcwmzQV+ktJaAjM9s1S4E2fEAM=
Bytes: 3898
Lines: 65

ShahinaMohamed <nospam_shahina94@hotmail.fr.invalid> writes:

> Dans le cadre d=E2=80=99un mini-projet =C3=A0 l=E2=80=99universit=C3=A9 j=
e dois coder le jeu =C2=AB
> Le compte est bon =C2=BB. Le jeu est issu de l=E2=80=99=C3=A9mission des =
chiffres et des
> lettres : 6 nombres parmi {1,2,3,4,5,6,7,8,9,10,25,50,75,100} sont
> tir=C3=A9s au sort (tirage avec remise). Ensuite, avec ces chiffres, nous
> devons r=C3=A9aliser des op=C3=A9rations math=C3=A9matiques (+,-,/,x) pou=
r trouver un
> autre nombre tir=C3=A9 au hasard entre 101 et 999.

Comme dit Stefan, c'est un probl=C3=A8me difficile, et c'est un probl=C3=A8=
me
d'algorithmique plus que de Python. Note d=C3=A9j=C3=A0 qu'il n'y a pas for=
c=C3=A9ment
de solution (par exemple, si on tire 6 fois 1, il sera difficile de
produire 7 ou un nombre sup=C3=A9rieur =C3=A0 9 -- il me semble que chaque =
nombre
produit ne peut =C3=AAtre utilis=C3=A9 qu'une seule fois).

Voil=C3=A0 une strat=C3=A9gie 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=C3=A9sultat (N1 "o" N2)
- puis on recommence avec ce nouveau jeu

Mais comme on peut choisir, il y a plusieurs possibilit=C3=A9s. Il n'y a
pas vraiment de crit=C3=A8re pour choisir, on essaie toutes les possibilit=
=C3=A9s.
Au premier coup, avec 6 nombres, on a 6*5 choix du couple de nombres, et
4 op=C3=A9rations, donc 120 possibilit=C3=A9s. Pour *chacune* de ces possib=
ilit=C3=A9s,
on a une nouvelle liste, mais avec seulement 5 nombres, et chacune de
ces listes permet de "g=C3=A9n=C3=A9rer" 5*4*4 (80) nouvelles listes. Etc.

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

J'ai fait l'hypoth=C3=A8se qu'on ne peut pas r=C3=A9utiliser un nombre. Si =
on
peut, alors il y a encore plus de possibilit=C3=A9s, et on n'est m=C3=AAme =
pas s=C3=BBr
que l'agorithme va s'arr=C3=AAter. V=C3=A9rifie ce que dit l'=C3=A9nonc=C3=
=A9.

En fait, si tu suis cette strat=C3=A9gie, tu verras que certaines listes so=
nt
examin=C3=A9s plusieurs fois, parce que deux des op=C3=A9rations sont
commutatives, et donc l'ordre du choix des nombres est sans importance
pour ces deux op=C3=A9rations -- mais pas pour les deux autres. Essaye
d'=C3=A9crire la formule exacte pour le nombre de possibilit=C3=A9s, ce n'e=
st pas
tr=C3=A8s dur.

De m=C3=AAme si le m=C3=AAme nombre est pr=C3=A9sent 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=C3=A9rifie quand m=C3=AAme ce que=
 dit
l'=C3=A9nonc=C3=A9.

-- Alain.