Deutsch English Français Italiano |
<87bkvlesee.fsf@izac.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder8.news.weretis.net!news.trigofacile.com!news.ortolo.eu!news.izac.org!reader From: Benoit Izac <use.reply.to@INVALID.ADDRESS> Newsgroups: fr.comp.lang.python Subject: Re: Autre exercice : calculer la somme de x chiffres. Date: Wed, 25 May 2022 13:57:45 +0200 Message-ID: <87bkvlesee.fsf@izac.org> References: <t6dj6a$sg8$1@gioia.aioe.org> <t6djq7$1570$1@gioia.aioe.org> <87o7zod3s7.fsf@izac.org> <877d6czfdn.fsf@universite-de-strasbourg.fr.invalid> <87k0accue3.fsf@izac.org> <87zgj7xg89.fsf@universite-de-strasbourg.fr.invalid> <87mtf669z5.fsf@izac.org> <87r14hyh3a.fsf@universite-de-strasbourg.fr.invalid> Reply-To: benoit.izac@free.fr Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: keg.izac.org; logging-data="1383042"; mail-complaints-to="usenet@izac.org" Bytes: 2525 Lines: 39 Bonjour, Le 25/05/2022 à 13:41, Alain Ketterlin a écrit dans le message <87r14hyh3a.fsf@universite-de-strasbourg.fr.invalid> : >>> (Ç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.) >> >> Il y a intérêt a avoir un beau commentaire juste à côté car il y a fort >> à parier que quelqu'un qui passe sur le code sans être courant risque de >> simplifier (et c'est logique). >> >> Question bête : si c'est (a+b) qui provoque le dépassement, pourquoi pas >> « a/2 + b/2 » ? Perte de précision ? > > Oui, parce que dans ce cas le milieu de 3 et 5 est 3 (3//2 == 1 et 5//2 > = 2), ce qui n'est pas utile dans les algos dichotomiques. > > (Si tu penses à la division flottante, alors tu as un problème encore > plus grave, puisqu'on a alors en général seulement 53 bits de précision > -- pour les double IEEE 754. Sans compter les blagues du genre > 0.1+0.1+0.1 != 0.3) En fait, j'étais focalisé sur la division flottante. Pour la division entière c'est plus évident. >> Et pour ma culture, il vient d'où ce bug ? > > Voici ce que j'ai trouvé de plus ancien sur le bug dans la bibliothèque > standard de Java : > > https://ai.googleblog.com/2006/06/extra-extra-read-all-about-it-nearly.html Je vois, du coup les autres qui ont fait des bibliothèques dans d'autres langages (C par exemple) ont rencontrés le même problème (bien avant Java). -- Benoit Izac