| Deutsch English Français Italiano |
|
<th7h21$9vi$1@cabale.usenet-fr.net> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen <om+news@miakinen.net> Newsgroups: fr.sci.maths Subject: =?UTF-8?Q?Re:_Probl=c3=a8me_de_l'arr=c3=aat?= Date: Fri, 30 Sep 2022 21:46:09 +0200 Organization: There's no cabale Lines: 59 Message-ID: <th7h21$9vi$1@cabale.usenet-fr.net> References: <63367bdd$0$25804$426a74cc@news.free.fr> <th6hru$248k$1@cabale.usenet-fr.net> <th7124$1l9b$1@gioia.aioe.org> NNTP-Posting-Host: 220.12.205.77.rev.sfr.net Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1664567169 10226 77.205.12.220 (30 Sep 2022 19:46:09 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Fri, 30 Sep 2022 19:46:09 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 In-Reply-To: <th7124$1l9b$1@gioia.aioe.org> Bytes: 2687 Le 30/09/2022 17:13, maixxx m'a répondu : >>> >>> def f(m, n): >>> while n: >>> m, n = m ^ n, (m & n) << 1 >>> return m >> >> [...] >> >> Ma question est alors de déterminer pour quelles valeurs de m et n >> le programme s'arrête et pour quelles valeurs il ne s'arrête jamais. >> >> Question subsidiaire : lorsque le programme s'arrête, combien de >> tours de boucle a-t-il réalisés ? > > pour 15+1 m= 1111 + n=0001 > 14+2 1110 0010 > 12+4 1100 0100 > 8+8 1000 1000 > 16+0 10000 0000 > 4 itérations > > pour 6+5 0110 0101 > 3+8 0011 1000 > 11+0 1011 0000 > 2 itérations > > pour 4+8 1000 0100 > 12+0 1100 0000 > 1 itération > > Remarquer qu'à chaque itération la somme m+n est constante et égale au résultat > final. Oui. > AMA le nombre de boucles est *au plus* égal au rang max du chiffre > binaire à 1 du résultat. Vrai ?? .... ce qui est évidemment vrai lorsque le résultat est un nombre négatif, puisqu'alors ce rang max est infini. :-) Mais oui, pour des nombres positifs ce que tu dis est forcément vrai, du fait que s'il y a plusieurs boucles c'est à cause de la propagation d'une retenue, à chaque fois au rang suivant. Je vais bientôt proposer ma propre solution à cette question. >> [...] >> > Ça fait bien penser aux "additionneurs" réalisés avec des registres et des portes. Oui. Je suis même prêt à parier qu'il s'agit de la source d'inspiration d'ast (ou de la personne ayant écrit la fonction que nous a proposée ast, si ce n'est pas lui l'auteur de cette fonction). -- Olivier Miakinen