Path: ...!npeer.as286.net!npeer-ng0.as286.net!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!aioe.org!No6DEx/YTI7k1hrrhSmZAA.user.46.165.242.75.POSTED!not-for-mail From: Alain Ketterlin Newsgroups: fr.comp.lang.python Subject: Re: [NON RESOLU] : Panne en Python... Date: Sun, 02 Oct 2022 15:58:49 +0200 Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg Message-ID: <87o7uuwcme.fsf@universite-de-strasbourg.fr.invalid> References: <87sfk6wj9f.fsf@universite-de-strasbourg.fr.invalid> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: gioia.aioe.org; logging-data="16027"; posting-host="No6DEx/YTI7k1hrrhSmZAA.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:ZsRheaz19MvzzQxyrZbavu+c0bk= X-Received-Bytes: 2924 Bytes: 3051 Lines: 46 AIEO writes: > L=C3=A0, je cherche comment r=C3=A9pondre =C3=A0 une question simple : so= it le nombre > 123456789, o=C3=B9 placer 3 signes + ou - de telle sorte qu'on obtienne 1= 00 > ? Tous les chiffres doivent, bien s=C3=BBr, =C3=AAtre utilis=C3=A9s et da= ns leur > ordre croissant, du style (faux ici) 1234-456-7+89 > Je cherche =C3=A0 cr=C3=A9er un ensemble de liste o=C3=B9 la premi=C3=A8r= e ferait de 1 =C3=A0 6 > chiffres, la 2e idem mais du caract=C3=A8re 2 =C3=A0 7, la 3e 3 =C3=A0 8 = et la > derni=C3=A8re 4 =C3=A0 9. Puis je placerai toutes les combinaisons de + e= t de > moins entre pour voir si une me donne 100. Est-ce la bonne piste ? Je > verrai... Oui c'est cela. Il faut d=C3=A9couper les 9 chiffres en 4 parties, de toutes les fa=C3=A7ons possibles, et pour chaque d=C3=A9coupage placer les signes = de toutes les fa=C3=A7ons possibles, et tester si on a une solution. Dans cette =C3=A9nigme, je ne vois pas de fa=C3=A7on d'=C3=A9liminer a priori des d=C3= =A9coupages (sauf anecdote, du genre "que des plus", ou premi=C3=A8re partie de longueur 2 et que des moins). Note que si tu d=C3=A9coupes en 4 parties de longueurs l1 l2 l3 et l4, tu as des conditions : 1) 1 <=3D l1 <=3D 9 - 3 (il faut garder au moins un chiffre pour les 3 autr= es) 2) 1 <=3D l2 <=3D 9 - l1 - 2 3) 1 <=3D l3 <=3D 9 - l1 - l2 - 1 4) l4 =3D 9 - l1 - l2 - l3 est toujours fix=C3=A9 Pour les op=C3=A9rations, c'est commode de consider des variables s1, s2, s3 qui peuvent prendre les valeurs -1 ou +1 : tu peux alors calculer le r=C3=A9sultat en =C3=A9crivant a + s1*b + s2*c + s3*d, o=C3=B9 a b c et d s= ont les valeurs des quatres parties. Si tu veux afficher joliment, tu peux utiliser {-1: "-", +1: "+"}[s1] (ou m=C3=AAme "?+-"[s1] mais =C3=A7a c'est ultra-geek). -- Alain. P/S: il y a une seule solution