Re: blad Pentiuma (2+2=3.999)?

Autor: Miroslaw Prywata (mpry_at_fuw.edu.pl)
Data: Tue 29 Oct 1996 - 18:02:23 MET


> Wiem, ze ten blad to stara sprawa, ale:
Bardzo stara i zarazem bardzo aktualna bo TEN blad bedzie zawsze.

> robilem wczoraj w Excelu, zwykla tabelke(cos takiego:)
> a b c
> 1 1 =a1^2-4
> 2 =a1+0,1 =a2^2-4
> 3 =a2+0,1 =a3^2-4
> itd...
> 10 =a9+0,1 =a10^2-4
> cos takiego... w kazdym badz razie w a10 bylo 2, ale w b10 wcale nie
> 0 (2^2-4) lecz 3,5E-10 (czyli na ktoryms tam miejcu po przecinku
> byla LICZBA!!!)

Czyli, ze Twoj komputer zachowuje sie zupelnie normalnie. Jak chcesz, to
zwieksz dokladnosc (np do 20 miejsc znaczacych), ale wtedy pojawi Ci sie
wynik np. 3.8E-20.

CZYLI TAK DOKLADNY JAK TEGO CHCIALES ! ! !
 
Jezeli chcesz tego uniknac, to musisz uzywac liczb calkowitych (ale wtedy
zegnajcie ulamki). No i wyniki znowu nie beda Ci sie zgadzaly, tzn
1/3=0 (dla liczb zalkowitych).
Mozesz jeszcze kazac obcinac wszystkie male liczby.Tak na marginesie sporo
hakerow niezle sie oblowila przelewajac na swoje konta jedynie te drobne
zaokraglenia....

Oprocz tego dodawanie na komputerze nie jest laczne, tzn nie zawsze
(a+b)+c=a+(b+c)
czasem wyjdzie cos innego.

Oprocz tego zero jest liczba wyrozniona (tzn do zera mozesz sie zblizac na
duzo mniejsza odleglosc niz do innych liczb).
3.0+1.0E-30=3.0
0.0+1.0E-30=1.0E-30

Te wyliczanke moznaby kontynuowac. I sa to zjawiska normalne, ktore beda
wystepowaly zawsze (tzn zwiekszanie dokladnosci powoduje pojawienie sie
bledu duzo pozniej, ale zawsze wystapi).

                                                Mirek



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 12:35:34 MET DST