Переповнення заборони в плаваючій точці - x + x + x
це точно правильно округлене (тобто найближче) число з плаваючою точкою до реального 3 * x
, x + x + x + x
рівно 4 * x
, і x + x + x + x + x
знову є правильно округлене наближення з плаваючою точкою для 5 * x
.
Перший результат, бо x + x + x
випливає з того, що x + x
є точним. x + x + x
Таким чином, це результат лише одного округлення.
Другий результат більш важким, одна демонстрація цього обговорюється тут (і Стівен Canon посилається на інший доказ у справі аналізу на останні 3 цифри x
). Підводячи підсумок, або 3 * x
знаходиться в тому ж бінаді, що і 2 *, x
або знаходиться в тому ж бінаді, що і 4 * x
, і в кожному конкретному випадку можна зробити висновок, що помилка на третьому доповненні скасовує помилку на другому додаванні ( перше доповнення точно, як ми вже говорили).
Третій результат, « x + x + x + x + x
правильно округлений», випливає з другого так само, як перший походить від точності x + x
.
Другий результат пояснює, чому 0.1 + 0.1 + 0.1 + 0.1
саме це число з плаваючою комою 0.4
: раціональні числа 1/10 і 4/10 наближаються однаково, з однаковою відносною помилкою, при перетворенні на плаваючу крапку. Ці числа з плаваючою комою мають співвідношення рівно 4 між ними. Перший і третій результати показують, що 0.1 + 0.1 + 0.1
і, як 0.1 + 0.1 + 0.1 + 0.1 + 0.1
можна очікувати, буде мати меншу кількість помилок, ніж це може бути зроблено шляхом аналізу наївних помилок, але самі по собі вони лише співвідносять результати відповідно 3 * 0.1
і 5 * 0.1
, які, як можна очікувати, будуть близькими, але не обов'язково ідентичними 0.3
і 0.5
.
Якщо ви продовжуєте додавати і 0.1
після четвертого додавання, ви, нарешті, помітите помилки округлення, які роблять « 0.1
додані до себе n разів» відхилення n * 0.1
та розбігаються ще більше від n / 10. Якби ви побудували графіки значень "0,1, доданих до себе n разів", як функцію n, ви б спостерігали лінії постійного нахилу бінадами (як тільки результат n-го додавання призначений потрапити в певний бінад, властивості додавання можна очікувати аналогічно попереднім доповненням, що призвели до результату в тому самому бінаді). У межах одного бінада помилка або зростатиме, або зменшується. Якби ви подивилися на послідовність схилів від бінади до бінади, ви б розпізнали повторювані цифри0.1
у двійковому на деякий час. Після цього почне поглинання, і крива піде плоскою.