|
Тема |
Re: Сравняване на реални числа [re: NejDet] |
|
Автор |
Eмил () |
|
Публикувано | 19.08.03 09:48 |
|
|
To NejDet
"Няма смисъл от сравняването на слонове и мухи нали!? (по тегло)"
Има смисъл.
Задача: даден е масив (или файл) с 1000001 числа (реални).
Да се намери сумата им.
Какво по-просто! Цикъл и събираш.
Да ама не, както имаше един популярен израз
преди време.
Нека едно от тези числа да е: 1000000000 (милиард).
Нека всички останали числа да са
0.000 001 (една милионна).
Нека първото число в масива е голямото а останалите до
края са малките.
В началито на цикъла събирайки първото и второто
число ще какво ще се получи?
Резултат:=1 000 000 000 + 0.000 001=1 000 000 000
Пак ТОЧНО един милиард, а не 1 000 000 000.000 001
ако точността на реалните числа е под 15 знака.
С третото, четвъртото и т.н. числа ситуацията се повтаря.
Накрая цялата сума е 1 000 000 000, а не 1 000 000 001
какъвто е правилния резултат.
Нека сега съберем числата по друг начин - първо всички
малки и накрая голямото.
Първото + второто=0.000 001 + 0.000 001=0.000 002
което вече е коректно.
Като съберем всички малки числа ще получим
един милион пъти по една милионна = 1
и накрая голямото + 1 е
1 000 000 000 + 1 = 1 000 000 001
вече резултата е коректен за разлика от първия път,
когато на практика ние загубихме всички малки числа.
Извод: при събиране на много реални числа първо
се сортират и след това се събират от малките
към големите.
Така, че, NejDet, има смисъл от сравняването на
мухи и слонове. :)
|
| |
|
|
|