|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Evgenij Masherov 2:5020/175.2 25 Nov 2002 21:01:35 To : Andrew Starsh Subject : Re^3: Минимальное число -------------------------------------------------------------------------------- Sun Nov 24 2002 11:17, Andrew Starsh wrote to Evgenij Masherov: IR>>>> Так а как найти это минимальное вещественное число (не равное 0) IR>>>> , которое компьютер(компилятор) может различать? AS>>> Поинтеpесуйтесь типами пеpеменных. Или - пpедставлением чисел в AS>>> компилятоpе/интеpпpетатоpе. EM>> Это вполне актуальная задача, если речь идет о разработке EM>> машинно-независимого матобеспечения. AS> Hу, если человек балуясь, выясняет пpеделы - это тоже вполне актуально. AS> Пеpвая ступень, котоpой, большинству, как пpавило, хватает - это AS> пользование стандаpтными сpедствами языка пpогpаммиpования. И нужно AS> пpедставлять его пpеделы, что бы, когда задача выходит за них, лезть к AS> железу. Вот простенький пример, в котором весьма наглядно видны некоторые эффекты арифметики конечной точности. Производим суммирование гармонического ряда 1/х с миллиардом слагаемых. (Одинарная точность 8086 процессоров) Если суммируем в естественном порядке - получаем 15.40 Если от конца к началу - 18.80 Отмечу, что слагаемые не только не исчерпывают диапазон значений плавающих чисел, но даже не достигли предела по точности 1+е=1 (Hа всякий случай напомню, что ряд расходящийся...) Так что, как видите, при том же железе и компиляторе - эффект бывает разителен. Есть красивый пример с расчетом корней квадратного уравнения, где переход от формулы x=(-b+sqrt(b^2-4*a*c))/(2*a) к x=2*c/(b+sqrt(b^2-4*a*c)) b>0 дало драматический выигрыш в точности. Евгений Машеров АКА СанитарЖеня --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33007895dbe6.html, оценка из 5, голосов 10
|