Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3963
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Newsgroups | fr.sci.maths, fr.comp.lang.python |
| Subject | Problème de l'arrêt (was: Que fait ce programme ?) |
| Followup-To | fr.sci.maths |
| Date | 2022-09-30 12:53 +0200 |
| Organization | There's no cabale |
| Message-ID | <th6hru$248k$1@cabale.usenet-fr.net> (permalink) |
| References | <63367bdd$0$25804$426a74cc@news.free.fr> |
Cross-posted to 2 groups.
Followups directed to: fr.sci.maths
[diapublication, suivi vers fr.sci.maths seul] Bonjour, Le 30/09/2022 à 07:17, ast avait écrit : > > def f(m, n): > while n: > m, n = m ^ n, (m & n) << 1 > return m Comme l'écrivait Michel Talon, cette fonction retourne simplement la somme des entiers m et n, du moins cela fonctionne pour tous les entiers positifs. À chaque tour de boucle, on retrouve dans m la somme bit à bit des nombres m et n *sans tenir compte des retenues*, et dans n la somme de toutes les retenues. Au bout d'un petit nombre de tours de boucle, il n'y a plus aucune retenue à faire, et alors le nombre n vaut 0 tandis que le nombre m contient le résultat attendu à savoir la somme des nombres m et n de départ. Je voudrais maintenant étendre la question d'ast, en faisant suivre vers fr.sci.maths seul car ça n'a plus rien de spécifique à python. Lorsque l'un des nombres est négatif, il arrive que l'algorithme ne s'arrête jamais. Par exemple lorsque m vaut -1 et que n vaut n'importe quel nombre strictement positif. 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 ? Précision pour la représentation des nombres en binaire, un nombre positif comporte « à gauche » une infinité de chiffres binaires valant zéro, tandis que les nombres négatifs ont une infinité de chiffres à 1. Exemples : 3 = ...0000011 2 = ...0000010 1 = ...0000001 0 = ...0000000 -1 = ...1111111 -2 = ...1111110 -3 = ...1111101 -4 = ...1111100 -- Olivier Miakinen
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Que fait ce programme ? ast <ast@invalid> - 2022-09-30 07:17 +0200
Re: Que fait ce programme ? Olivier Miakinen <om+news@miakinen.net> - 2022-09-30 11:14 +0200
Re: Que fait ce programme ? Olivier Miakinen <om+news@miakinen.net> - 2022-09-30 11:18 +0200
Re: Que fait ce programme ? Olivier Miakinen <om+news@miakinen.net> - 2022-09-30 11:29 +0200
Re: Que fait ce programme ? ast <ast@invalid> - 2022-10-02 16:57 +0200
Re: Que fait ce programme ? Michel Talon <talon@niobe.lpthe.jussieu.fr> - 2022-09-30 11:39 +0200
Problème de l'arrêt (was: Que fait ce programme ?) Olivier Miakinen <om+news@miakinen.net> - 2022-09-30 12:53 +0200
Bis: Que fait ce programme ? Olivier Miakinen <om+news@miakinen.net> - 2022-10-01 15:40 +0200
csiph-web