Path: ...!news.mixmin.net!aioe.org!Faqf6A55NG1s8DSVkh3L9A.user.46.165.242.75.POSTED!not-for-mail From: Alain Ketterlin 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: 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 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.