|
|
|
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Вопрос 1:
Для начала примем во внимание, что память компьютера ограничена, а значит, мы должны с самого начала определить интервал чисел, с которыми будем работать. Предположим, что у нас 32 бит. Значит, мы можем представить 2^32 различных комбинаций или чисел. Выбираем интервал от х до х+2^32 и спокойно работаем Теперь берём float. Бит так же, 32, но интервал 32 битного флоата почему-то кажется нам намного больше.. Вопрос 2: Сколько чисел в интервале от 1 до 2? Ответ 2: Целых чисел там нет. Зато бесконечное количество дробных. Вопрос 3: Но ведь мы сказали, что память компьютера ограничена. Каким образом тогда можно представить бесконечное количество? Ведь у нас всего 2^32 комбинаций! Ответ 3: Конечно никаким! Теперь понятно, что все дробные числа мы просто не в состоянии представить в нашей "ограниченной" памяти, какой бы интервал мы не взяли. Вот и происходят странные ошибки при сложении. Откуда-то берутся .000000000001 и тому подобное грубо говоря, мы можем представить 1423.000000000001, но не можем 1423. Мы можем аппроксимировать желания юзера и распределить имеющиеся 32 бит другим образом. Здесь вводится понятие "точность". То есть в интервале, например от 0 до 1 компьютер работает точнее, чем в интервале 9999998 до 9999999. Хотя интервал и там 1 и тут 1 А вот теперь пришло время рассмотреть, каким образом удаётся этого добиться. См:http://sizov.by.ru/pubs/float.shtml Вопрос 4: А как это лечить? Ответ 4: К сож. это не лечится. ---------------------------------------------------------- ПС: Прошу, дополнять, исправлять , немного ругать Если посчитаете тему ненужной, я её сотру Сергей. |
|||
|
||||
podval |
|
|||
Где я? Кто я? Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 1 Всего: 62 |
Тема перенесена из раздела "Алгоритмы".
|
|||
|
||||
val |
|
|||
Program developer Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Проблема, уважаемые коллеги имеенно в двоичной системе представления чисел. Некоторые конечные дроби в одной системе счисления представляются бесконечными в другой. Вот он, корень зла...
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
sergejzr |
|
|||
Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Хорошее дополнение Это тоже один из факторов невозможности точного представления некоторых чисел в компьютерной памяти. Спасибо |
|||
|
||||
val |
|
|||
Program developer Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Не за что... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Столько текста вместо простого и понятного объяснения, что такое машинный эпсилон, на которое хватило бы и минуты.
-------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Форматы файлов и данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |