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