Поехали
Слайд 166
Есть ограничение, которому тоже стоит уделить внимание.
Даже если наши числа позволяют отображать большой диапазон значение, у них все еще е сть только четыре значащие цифры.
Это значит, что число 12344 будет храниться как 12340. Для последнего знака нужна еще одна цифра.
Слайд 167
Я часто даю головоломку моим студентам: функцию, извлекающую корень из четырех и спрашиваю, будет ли ошибкой, если программа вернет 1.999999999 вместо 2.
Обычно студенты говорят, что это баг.
Но предположим, что программа хранит только 4 значащие цифры. в чем разница между 1.9999 и 2 в таком случае? В памяти будет хранится одно и то же число.
предположим тогда, что это не баг, когда 1.9999 интерпретируется как 2.
Что если мы будем извлекать корень из 3.999. Корень из этого числа 1.99975. Для четырех значащих цифр мы все еще получаем 2. Это большая ошибка?
Арифметика с плавающей точкой имеет фундаментальное ограничение. В вычислениях присутствует ошибка округления. После выполнения операции, такой как корень, мы не найдем различий между 1.9995, 1.9999 и 2. Все они будут хранится как 2, но в терминах величины ошибки, будет большей ошибкой приравнять 1.99975 к 2, чем 1.9999
Слайд 166
Есть ограничение, которому тоже стоит уделить внимание.
Даже если наши числа позволяют отображать большой диапазон значение, у них все еще е сть только четыре значащие цифры.
Это значит, что число 12344 будет храниться как 12340. Для последнего знака нужна еще одна цифра.
Слайд 167
Я часто даю головоломку моим студентам: функцию, извлекающую корень из четырех и спрашиваю, будет ли ошибкой, если программа вернет 1.999999999 вместо 2.
Обычно студенты говорят, что это баг.
Но предположим, что программа хранит только 4 значащие цифры. в чем разница между 1.9999 и 2 в таком случае? В памяти будет хранится одно и то же число.
предположим тогда, что это не баг, когда 1.9999 интерпретируется как 2.
Что если мы будем извлекать корень из 3.999. Корень из этого числа 1.99975. Для четырех значащих цифр мы все еще получаем 2. Это большая ошибка?
Арифметика с плавающей точкой имеет фундаментальное ограничение. В вычислениях присутствует ошибка округления. После выполнения операции, такой как корень, мы не найдем различий между 1.9995, 1.9999 и 2. Все они будут хранится как 2, но в терминах величины ошибки, будет большей ошибкой приравнять 1.99975 к 2, чем 1.9999
Комментариев нет:
Отправить комментарий