Sujet : Re: Autre exercice : calculer la somme de x chiffres.
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.lang.pythonDate : 25. May 2022, 12:25:04
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87v8ttyhv3.fsf@universite-de-strasbourg.fr.invalid>
References : 1 2 3 4 5 6 7
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Olivier Miakinen <om+
news@miakinen.net> writes:
Le 24/05/2022 14:33, Alain Ketterlin a écrit :
Cela étant, ta version est mieux adaptée aux contextes où la précision
est limitée, parce qu'elle évite les overflows quand n*(n+1) n'est pas
représentable mais que n*(n+1)/2 l'est.
(Ça ne concerne pas Python, mais c'est la même idée qu'un bug qui a été
célèbre en Java, dont la correction a consisté à remplacer (a+b)/2 par
a + (b-a)/2.)
>
Et là, si on prend pour a et b un très grand nombre positif et un très
grand nombre négatif, c'est la correction qui fait planter alors que la
version d'origine fonctionne très bien. ;-)
Oui, tu as tout à fait raison : on ne peut pas avoir le beurre et
l'argent du beurre.
J'aurais du préciser que le bug auquel je faisais allusion concernait la
recherche dichotomique dans un très grand tableau, et donc mettant en
jeu des valeurs positives uniquement. Voici une description
https://ai.googleblog.com/2006/06/extra-extra-read-all-about-it-nearly.htmlIl semble que le rapport de bug original (du temps ou Sun Microsystems
s'occupait de Java) est perdu...
-- Alain.