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 : 24. May 2022, 13:33:26
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87zgj7xg89.fsf@universite-de-strasbourg.fr.invalid>
References : 1 2 3 4 5
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Benoit Izac <
use.reply.to@INVALID.ADDRESS> writes:
def accumulate_sum_of(n):
return (n + 1) // 2 * (n + (n + 1) % 2)
>
Hmm, pourquoi pas simplement n * (n+1) // 2 ?
>
Parce que c'est toujours plus compliqué de faire simple. ;-)
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.)
-- Alain.