-
31. Data: 2019-06-17 03:44:46
Temat: Re: Porównywanie liczb, double float
Od: bartekltg <b...@g...com>
On Sunday, June 16, 2019 at 9:40:44 PM UTC+2, AK wrote:
> On 2019-06-12 16:54, Cezary Grądys wrote:
> > W dniu 12.06.2019 o 14:29, Mateusz Viste pisze:
> >
> >>
> >> Prawdziwi programiści nie używają liczb zmiennoprzecinkowych.
> >>
> >> Obowiązkowa lektura na wieczór:
> >> http://perso.ens-lyon.fr/jean-michel.muller/goldberg
.pdf
> >>
> >
> > Nie ma co przesadzać, liczby zmiennoprzecinkowe po to powstały, żeby je
> > używać. Trzeba tylko porównywać je zakładając pewną dopuszczalną
> > tolerancję.
>
> No dooobra.
> Zamieszcze tu po raz 473 w ciagu 20 lat podstawową formułkę
> (Ba! KANON!), bo przy takiej wiedzy "mlodego pokolenia" znow
> zaczną nam przychodzic ponaglenia o pilną zapłatę 0.00PLN.
>
> a == b -> fabs(a - b) <= EPS
> a != b -> fabs(a - b) > EPS
Zgoda.
> a < b -> (a - b) < -EPS
> a > b -> (a - b) > EPS
> a <= b -> (a - b) <= EPS
> a >= b -> (a - b) >= -EPS
A to po co?
Jeśli chemy rozróżnić trzy przypadki,
'wystarczająco równe', większe, mnijesze,
to OK. Ale bardzo często nierórności tego typu
testuje się do rozdielenia mniejszych i większych,
wtedy to ma mały sens.
Np mam algorytm, sprawdzam oszacowanie na błąd:
while (est_error > tol )...
mieszanie tu eps nic jakościoweo nie zmieni.
pzdr
bartekltg
-
32. Data: 2019-06-17 09:02:32
Temat: Re: Porównywanie liczb, double float
Od: Mateusz Viste <m...@w...tell>
On Sun, 16 Jun 2019 21:53:24 +0200, AK wrote:
> On 2019-06-14 08:19, Mateusz Viste wrote:
>> Prawdziwi programiści zakładają, że typ danych jest najwęższy możliwy:
>> int=16, long=32, long long=64.
>
> Niestety to duzy blad :(
Jakieś argumenty?
Mateusz
-
33. Data: 2019-06-17 09:21:05
Temat: Re: Porównywanie liczb, double float
Od: Mateusz Viste <m...@n...pamietam>
On Sun, 16 Jun 2019 21:43:50 +0200, AK wrote:
> On 2019-06-13 15:37, Pszemol wrote:
>> "Mateusz Viste" <m...@n...pamietam> wrote in message
>> news:5d00f035$0$15194$426a74cc@news.free.fr...
>>> On Wed, 12 Jun 2019 07:17:45 -0500, Pszemol wrote:
>>>> Pisząc w Visual Basic 6 gostek porównywał rezultat konwersji CDbl()
>>>> stringu od którego odjął stałą numeryczną 1.8 do lokalnej zmiennej
>>>> double.
>>>
>>> Prawdziwi programiści nie używają liczb zmiennoprzecinkowych.
>>
>> Faktem jest, że gdy zmienne nie skaczą dynamicznie od e-15 do e+15 to
>> warto znaleźć zakres wariacji mierzonej zmiennej, oczekwianą dokładność
>> i zamiast na float operować na long integer * 10000 na przykład...
>
> 1. ile masz takich przypadkow w zyciu (owszem, fraktale).
> 2. przy dzisiejszych koprocesorach ? Na pewno warto ?
> /Kiedys zdecydowanie tak, wiec absolutnie podejscia nie potępiam/.
Koprocesory nie mają tu nic do rzeczy - na 386SX też dało się korzystać z
float, mimo braku FPU. Oczywiście kosztem wydajności, ale nie o tym
przecież mówimy.
Float/Double ze swojej natury nie zapewnia dokładności i dlatego to je
skreśla w większości zastosowań w których ludzie intuicyjnie z nich
korzystają (głównie: liczenie pieniędzy). Fakt - są sytuacje kiedy float
*może* być dobrym rozwiązaniem: fraktale, przetwarzanie grafiki lub
dźwięku i generalnie wszystko, co nie wymaga ścisłego wyniku. Ale to -
przynajmniej z mojego punktu widzenia - specjalistyczne wyjątki.
Mateusz
-
34. Data: 2019-06-17 09:39:08
Temat: Re: Porównywanie liczb, double float
Od: Piotr Wyderski <p...@n...mil>
Mateusz Viste wrote:
> Prawdziwi programiści nie używają liczb zmiennoprzecinkowych.
Prawdziwi programiści nie używają liczb zmiennoprzecinkowych bezmyślnie.
A żeby to móc robić "zmyślnie" mają co najmniej półroczny zaawansowany
wykład z analizy numerycznej. Oczywiście zdarzają się i tacy, co byli
za mądrzy na studia i użeranie się z profesorami-debilami, dzięki czemu
m.in. Pszemol ma fun.
Pozdrawiam, Piotr
-
35. Data: 2019-06-17 09:43:43
Temat: Re: Porównywanie liczb, double float
Od: Piotr Wyderski <p...@n...mil>
AK wrote:
> No dooobra.
> Zamieszcze tu po raz 473 w ciagu 20 lat podstawową formułkę
> (Ba! KANON!), bo przy takiej wiedzy "mlodego pokolenia" znow
> zaczną nam przychodzic ponaglenia o pilną zapłatę 0.00PLN.
[ciach formułki]
I nie mówcie mi, że na macie NaNa, bo w każdej chwili mieć możecie!
(sprawdzić, czy nie ksiądz).
Pozdrawiam, Piotr
-
36. Data: 2019-06-17 09:48:10
Temat: Re: Porównywanie liczb, double float
Od: Piotr Wyderski <p...@n...mil>
AK wrote:
> 1. ile masz takich przypadkow w zyciu (owszem, fraktale).
Z okolic "numerków", to filtry Hogenauera chyba tylko. Tam przepełnienia
stałoprzecinkowe i ich wzajemna kompensacja
są podstawą całej sztuczki.
Pozdrawiam, Piotr
-
37. Data: 2019-06-17 09:53:42
Temat: Re: Porównywanie liczb, double float
Od: Mateusz Viste <m...@n...pamietam>
On Mon, 17 Jun 2019 09:39:08 +0200, Piotr Wyderski wrote:
> Prawdziwi programiści nie używają liczb zmiennoprzecinkowych bezmyślnie.
> A żeby to móc robić "zmyślnie" mają co najmniej półroczny zaawansowany
> wykład z analizy numerycznej. Oczywiście zdarzają się i tacy, co byli za
> mądrzy na studia i użeranie się z profesorami-debilami, dzięki czemu
> m.in. Pszemol ma fun.
Wszystko się zgadza, z tym że wniosek "był na studiach = wie co robi"
jest co najmniej nietrafiony. De facto studia - przynajmniej w sektorze
IT - to nic więcej jak strata czasu. Nie gwarantują one ani wiedzy, ani
pomyślunku, a zarówno to pierwsze jak i drugie można bez problemu nabyć
poza murami uczelni.
Mateusz
-
38. Data: 2019-06-17 12:59:41
Temat: Re: Porównywanie liczb, double float
Od: Piotr Wyderski <p...@n...mil>
Mateusz Viste wrote:
> Wszystko się zgadza, z tym że wniosek "był na studiach = wie co robi"
> jest co najmniej nietrafiony. De facto studia - przynajmniej w sektorze
> IT - to nic więcej jak strata czasu. Nie gwarantują one ani wiedzy, ani
> pomyślunku, a zarówno to pierwsze jak i drugie można bez problemu nabyć
> poza murami uczelni.
Studia w ogóle niczego nie gwarantują, bo nie od tego są. Mają tylko za
zadanie zmusić delikwenta do nauki rzeczy, których bez przymusu sam by
się nie nauczył. Między innymi właśnie "numerków". Rzetelny kurs analizy
numerycznej z realną opcją wylotu w przypadku niezaliczenia
nieco się różni od poczytania sobie ballady o floacie do podusi.
Dokładnie tak samo w przypadku algorytmiki i złożoności obliczeniowej. A
przynajmniej tak było w moich czasach.
Pozdrawiam, Piotr
-
39. Data: 2019-06-17 16:05:36
Temat: Re: Porównywanie liczb, double float
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Mateusz Viste" napisał w wiadomości grup
dyskusyjnych:5d074706$0$15193$4...@n...free.fr.
..
On Mon, 17 Jun 2019 09:39:08 +0200, Piotr Wyderski wrote:
>> Prawdziwi programiści nie używają liczb zmiennoprzecinkowych
>> bezmyślnie.
>> A żeby to móc robić "zmyślnie" mają co najmniej półroczny
>> zaawansowany
>> wykład z analizy numerycznej. Oczywiście zdarzają się i tacy, co
>> byli za
>> mądrzy na studia i użeranie się z profesorami-debilami, dzięki
>> czemu
>> m.in. Pszemol ma fun.
>Wszystko się zgadza, z tym że wniosek "był na studiach = wie co robi"
>jest co najmniej nietrafiony.
Cos w tym jest.
>De facto studia - przynajmniej w sektorze
>IT - to nic więcej jak strata czasu. Nie gwarantują one ani wiedzy,
>ani
>pomyślunku, a zarówno to pierwsze jak i drugie można bez problemu
>nabyć
>poza murami uczelni.
Tylko bez studiow, to kto ci podkresli na co zwrocic uwage ?
No i kto stypendium zaplaci za czas studiowania samodzielnego :-)
Poza tym owszem - studia nie gwarantuja wiedzy ani pomyslunku,
ale egzaminy i cwiczenia juz powinny ...
Niestety - informatyka stala sie zbyt obszerna, jak na jedne 3-letnie
studia ... i na 5-letnie, i nawet na dluzsze.
Ale akurat podstawy mozna uslyszec, ze np float nie stosuje sie do
pieniedzy :-)
J.
-
40. Data: 2019-06-17 16:09:24
Temat: Re: Porównywanie liczb, double float
Od: "J.F." <j...@p...onet.pl>
Użytkownik "AK" napisał w wiadomości grup
dyskusyjnych:qe665k$18po$...@g...aioe.org...
On 2019-06-13 15:37, Pszemol wrote:
> "Mateusz Viste" <m...@n...pamietam> wrote in message
>>> Prawdziwi programiści nie używają liczb zmiennoprzecinkowych.
>
>> Faktem jest, że gdy zmienne nie skaczą dynamicznie od e-15 do e+15
>> to
>> warto znaleźć zakres wariacji mierzonej zmiennej, oczekwianą
>> dokładność
>> i zamiast na float operować na long integer * 10000 na przykład...
>1. ile masz takich przypadkow w zyciu (owszem, fraktale).
>2. przy dzisiejszych koprocesorach ? Na pewno warto ?
>/Kiedys zdecydowanie tak, wiec absolutnie podejscia nie potępiam/.
Dzisiejsze koprocesory ciagle maja ten sam format liczby double, ktory
powoduje te błędy.
Wczorajsze koprocesory mialy formaty BCD, ktore akurat pieniadze
liczyly dokladnie, czy dzisiejsze maja to juz nie wiem.
J.