Математические истинны, приводят к заблужденьям

Всех нас со школьной скамьи убедили в том, что сумма чисел при перестановке слагаемых не меняется. Это правило распространяется в народе на самые различные жизненные ситуации. 
Фактически оно превратилось в одно из правил житейской мудрости, в одном ряду с такими утверждениями: «тише едешь, дальше будешь», «не в свои сани не садись» и т. д.

Утверждение о сохранении суммы при перестановке слагаемых  справедливо только в идеальном мире чистой математики.  В виртуальном мире компьютерных вычислений, а тем более в реальном мире это правило не работает.

В компьютере используется компьютерные, машинные числа, которые являются рациональными конечными дробями записанными в двоичной системе счислений. 

В обычной жизни мы работаем с числами в десятичной системе счисления. При их переводе в двоичную систему возникают проблемы. Например, число 0,1 в десятичной системе счисленич при переводе в двоичную систему представляется бесконечной периодической дробью. В компьюторе числа записываются с конечным числом цифр, следовательно при  А=0.1 в переменную А будет записано число меньше чем 0.1. Погрешность можно оценить и она будет равна 1.0*10^(-14). 
Заметим, что в компьютере может быть записано конечное количество чисел ~ 10^20.

Сложение чисел разных по величине и с разными погрешностями при изменении порядка сложения будет приводить к различным результатам.

Можно сформулировать другое правило, которое можно использовать в быту.
При сложении большого количества слагаемых необходимо первыми складывать числа наименьшие по величине. В этом случае погрешность будет наименьшей.

Эти правило работает и для произведения чисел.

Другой пример использовани математического образа для описания простой бытовой ситуации, существует поговорка: это просто как дважды два  (2*2=4).
Действительно до второй половины двадцатого века это было так, но в  век цифровых технологий процесс умножения машинных чисел на компьюторе или калькуляторе существенно усложнился. Умножение двух вещественных чисел будет зависить от многих технических факторов.
Все вычисления чисел с плавающей точкой на компьюторе производятся с погрешностью. Следовательно при вычислении произведения 2.*2. мы получим число, которое будет не равна 4. Оно будет отличатся на некоторое значение.

Представление о мире, его описание непрерывно усложняется. До появления многопроцессорных компьютеров повторные вычисления 2.*2. всегда приводили к одному и тому же резултату, к одной и той же погрешности. При вычислениях на многопроцессорных компьюторах при повторном вычислении произведение чисел будут использоваться различные процессоры из множества имеющихся, а значит и погрешности вычислений будут отличаться.   

Понятия ноль широко используется в бытовых разговорах. Однако в современном мире определяемым компьютерными представлениями о вычислениях нуль стал многогранным сложным объектом. Например фраза " этот человек полный ноль в каком-то деле" требует уточнения, поскольку существует целое множество нулей.
 
Существует машинный ноль,  который не равен классическому нулю. Это очень маленькое число на уровне погрешности вычислений. Существует ноль с плюсом и ноль с минусом.
Самое интересное то, что в компьютере во множестве машинных чисел с плавающей точкой (модель вещественных чисел) ноль не существует вообще!

С одной стороны эти примеры показывают насколько усложнилось предствление о мире, его описание в настоящее время. С другой стороны разнообразие нулей и понимание сложности вводимого понятия, как бы отсылает нас в средневековье, в древнюю Индию, когда только зарождались абстрактные понятия цифр,чисела и самой сложной цифры ноль.

Заметим, что слово цифра пришла к нам из арабского языка. Слово цифра переводится как «ничто, ноль».

P.S.  Перевод числа из одной системы счисления в другую систему подобен переводу текста из одного языка в другой. Перевод достаточно сложного текста всегда происходит с потерей какого-то количества информации.


Рецензии