Sujet : Re: Que fait ce programme ?
De : ast (at) *nospam* invalid (ast)
Groupes : fr.sci.maths fr.comp.lang.pythonDate : 02. Oct 2022, 15:57:38
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <6339a6e2$0$24787$426a74cc@news.free.fr>
References : 1 2 3
User-Agent : Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Thunderbird/102.3.1
Le 30/09/2022 à 11:29, Olivier Miakinen a écrit :
Le 30/09/2022 à 11:14, j'écrivais :
>
def f(m, n):
while n:
m, n = m ^ n, (m & n) << 1
return m
>
Je n'ai pas encore compris comment ça fonctionne
Ok, j'ai compris comment ça fonctionne. Réponse en ROT-13.
Cbhe har cnver qr ovgf qbaaéf à yn cbfvgvba x (p'rfg-à-qver qr
cbvqf 2^x) :
- f'vyf fbag gbhf yrf qrhk ahyf vyf erfgrag ahyf nceèf y'bcéengvba ;
- fv y'ha qrf qrf qrhk inhg méeb rg y'nhger ha, nceèf y'bcéengvba
ba ergebhir ha qnaf z rg méeb qnaf a à prggr cbfvgvba ;
- f'vyf fbag gbhf yrf qrhk étnhk à ha, ba ergebhir méeb qnaf z à
prggr cbfvgvba, rg ha qnaf a à yn cbfvgvba x+1. P'rfg-à-qver dhr
2^x nwbhgé à 2^x qbaar 2^(x+1).
Crgvg à crgvg ba rssrpghr qbap yn fbzzr qr z rg qr a, bù à pundhr
égncr ba ergebhir yrf fbzzrf fnaf ergrahr qnaf z rg yrf ergrahrf
qnaf a.
oui bien vu
m contient la somme sans les retenues et n contient les retenues
On additionne les retenues après coup, ce qui génère de nouvelles
retenues, et on réitère pendant qu'il y a des retenues.