L'overflow di blocco, in virgola mobile, x + x + x
è esattamente il numero in virgola mobile correttamente arrotondato (cioè il più vicino) al reale 3 * x
, x + x + x + x
è esattamente 4 * x
ed x + x + x + x + x
è di nuovo l'approssimazione in virgola mobile correttamente arrotondata per 5 * x
.
Il primo risultato, per x + x + x
, deriva dal fatto che x + x
è esatto. x + x + x
è quindi il risultato di un solo arrotondamento.
Il secondo risultato è più difficile, una dimostrazione che è discusso qui (e Stephen Canon allude ad un'altra prova mediante analisi caso delle ultime 3 cifre x
). Per riassumere, 3 * x
è nello stesso binade di 2 * x
o è nello stesso binade di 4 * x
, e in ogni caso è possibile dedurre che l'errore sulla terza aggiunta annulla l'errore sulla seconda aggiunta (il la prima aggiunta è esatta, come abbiamo già detto).
Il terzo risultato, " x + x + x + x + x
è arrotondato correttamente", deriva dal secondo nello stesso modo in cui il primo deriva dall'esattezza di x + x
.
Il secondo risultato spiega perché 0.1 + 0.1 + 0.1 + 0.1
è esattamente il numero in virgola mobile 0.4
: i numeri razionali 1/10 e 4/10 vengono approssimati allo stesso modo, con lo stesso errore relativo, quando convertiti in virgola mobile. Questi numeri in virgola mobile hanno un rapporto esattamente di 4 tra di loro. Il primo e il terzo risultato mostrano che 0.1 + 0.1 + 0.1
e ci si 0.1 + 0.1 + 0.1 + 0.1 + 0.1
può aspettare che abbiano meno errori di quanti ne possano dedurre dall'analisi dell'errore ingenuo, ma, di per sé, mettono in relazione solo i risultati rispettivamente con 3 * 0.1
e 5 * 0.1
, che ci si può aspettare che siano vicini ma non necessariamente identici a 0.3
e 0.5
.
Se si mantiene l'aggiunta 0.1
dopo il quarto Inoltre, si potrà finalmente osservare errori di arrotondamento che rendono “ 0.1
aggiunto a se stesso n volte” divergono da n * 0.1
, e divergono ancora di più da N / 10. Se dovessi tracciare i valori di "0.1 aggiunti a se stesso n volte" in funzione di n, osserveresti le linee di pendenza costante per binade (non appena il risultato dell'ennesima aggiunta è destinato a cadere in un binade particolare, ci si può aspettare che le proprietà dell'aggiunta siano simili alle aggiunte precedenti che hanno prodotto un risultato nello stesso binade). All'interno di uno stesso binade, l'errore aumenterà o diminuirà. Se dovessi guardare la sequenza delle pendenze da binata a binata, riconosceresti le cifre ripetitive di0.1
in binario per un po '. Successivamente, l'assorbimento inizierebbe e la curva si appiattirebbe.