Porównywanie liczb, double float

O przepraszam ! Ja sie uczylem Agolu/Simuli!

PS: No dobra.. Fortranu też ;)

AK

Reply to
AK
Loading thread data ...

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 a < b -> (a - b) < -EPS a > b -> (a - b) > EPS a <= b -> (a - b) <= EPS a >= b -> (a - b) >= -EPS

PS: Oczywiscie EPS moze miec rozna nature i wartosci zaleznie np. od domeny (numeryka, finanse itp). Np. Moze byc bezwzgledne, ale czesto bywa wzgledne, a w numeryce to juz w ogole... Np. w optymalizacji moze byc dynamiczne (np zalezne nie tylko od wartosci ale i innych cech funkcji, np gradientu) i sztuka sama w sobie jest je dobierac/szacowac np w slabo zbieznych algorytmach czy gdy np. funcja jest baaardzo stroma. No ale to juz zupelnie inna "para kaloszy".

PS0: Oczywiscie w niektorych "higienicznych" przypadkach (np. szukanie wartosci maksymalnej) dopuszczalne jest zwykłę >, ale to nie łamie/przeczy w/w regułom.

AK

Reply to
AK

  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/.

AK

Reply to
AK

Pierwsze publikacje o Asemblerze x86 pomijały 386 i koprocesor. W takiej "Asembler nie tylko dla orłów" Grzegorza Michałka (Intersoftland 1997) jest opisany 386 (i 486) z koprocesorem. I co prawda nie rozwodzi się tam nad dokładnością obliczeń, ale... Podaje jako jeden z możliwych błędów/wyjątków: "Utrata precyzji"/"Błąd precyzji" - bit 6 rejestru stanu koprocesora.

Tak czy owak nie powinno się pomijać kilku słów komentarza, podczas omawiania typów zmiennoprzecinkowych, na temat potencjalnych problemów przy ich stosowaniu.

Reply to
Szyk Cech

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

Reply to
Mateusz Viste

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

Reply to
Piotr Wyderski

[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

Reply to
Piotr Wyderski

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

Reply to
Piotr Wyderski

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

Reply to
Mateusz Viste

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

Reply to
Piotr Wyderski

Cos w tym jest.

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.

Reply to
J.F.

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.

Reply to
J.F.

Jak najbardziej.

No, tu bym sie zastanowil. Bo ryzykujesz, ze liczbe mniejsza zakwalifikujesz jako wieksza. Z mozliwymi skutkami w przebiegu programu, bo nagle sie okaze ze np pierwiastek z liczby ujemnej liczysz, a przeciez sprawdziles, ze powinna byc dodatnia ...

To juz chyba nie tak bardzo istotne, biorac pod uwage, ze i tak dorzuczamy EPS.

No wlasnie - moze zalezec od wartosci liczb.

J.

Reply to
J.F.

A na ktorym uczyli o mozliwych cudach numerycznych ? :-)

J.

Reply to
J.F.

Ale w inny sposob.

Ale w innym systemie byc moze sie da, wiec nie musi sie zabezpieczac. Za to 1/3 wynosi ... nie bardzo wiadomo ile :-)

Ogolny, ale te formaty, co wewnetrznie uzywaja liczb z mantysą binarna, to maja problem z liczbami dziesietnymi.

Ale akurat przed tym chroni. Inne cuda za to potrafi spowodowac, ktore z kolei w IEEEcostam i podobnych nie wystapia :-)

J.

Reply to
J.F.

Mateusz Viste snipped-for-privacy@nie.pamietam napisał(a):

Z jednej strony prawda, z drugiej często powtarzany mit. To, że coś jest gdzieś dostępne w Internecie wcale nie znaczy, że ktoś po to sięgnie. Studia jednak systematyzują różne rzeczy, dają szersze podstawy i do najważniejsze - teorię. Osoby bez studiów, zdobywające wiedzę samodzielnie, nastawione są na szybkie, praktycze efekty. Mogą bez problemu zostać programistami, ale dobrymi programistami trudniej. Studia w Polsce są różnej jakości, ale jeśli chodzi o IT, to nie są straconym czasem.

Reply to
Grzegorz Niemirowski

Właśnie o tę teorię chodzi, wtłoczoną bez oglądania się na straty na psychice. Wielokrotnie widziałem ten efekt w praktyce: inteligentna osoba bez wykształcenia kierunkowego bardzo sprawnie radziła sobie z obsługą narzędzi i realizowaniem zadań na średnim poziomie złożoności. Jeśli złożoność problemu podskoczyła tylko o epsilon, to ci ludzie momentalnie odpadali. Nie "mieli trudności", dosłownie odpadali. Informatycy z porządnym dyplomem tylko wzdychali i nieznacznie spowalniali. Bez różnicy, czy po politechnice, czy uniwerku. Bardzo ciekawa sprawa, swoja drogą. Mnie to się kojarzyło z muchami w szklance: w jej obrębie samoucy latali koncertowo, ale tłukli skrzydełkami o przezroczyste denko.

Pozdrawiam, Piotr

Reply to
Piotr Wyderski

Coś mi to pachnie uczelnianą propagandą.

Mi zdarzyło się obserwować efekt całkiem odwrotny: samouk i magister łeb w łeb. Nagle problem. Samouk, nauczony życiem, zaparł się i zrobił - wszak sam doszedł z A do B, więc samodzielna droga z B do C to żadna nowość, tylko kwestia czasu żeby zrozumieć i wykombinować co i jak. Magister natomiast tylko wytrzeszcza oczy i z rozbrajającym wzrokiem mówi "ale tego na studiach nie było".

Moja wersja jest być może lekko podkoloryzowana - ale z pewnością nie mniej niż twoja.

Z mojego doświadczenia wynika, że te wszelkie magistry od IT lepiej spożytkowaliby czas poza studiami - np. w wojsku. Nauczyliby się przynajmniej dyscypliny i samozaparcia. A tak to przychodzą jak błędne sieroty do pierwszej roboty i zagubieni bo mamy nie ma a świat jest dla nich nagle taki zły niedobry.

Mateusz

Reply to
Mateusz Viste

Nie mam związku z akademią od prawie dwóch dekad, opisuję swoje doświadczenia z przemysłu. Zarówno z pracy z osobami już pracującymi, jaki i z rozmów kwalifikacyjnych, które prowadziłem. Nie wiem też, co próbujesz udowodnić. Że lepiej leczyć się u lekarza, który nie ukończył medycyny, czy zlecić wybudowanie mostu u Janusza, który nie miał do czynienia z inżynierią lądową, ale za to zapał do pracy go rozsadza i pacz pan, jaką fajną pozbijał altankę? Czyń wolę swą, mnie to naprawdę wisi. Tylko nie zakładaj, że wszyscy zbijają altanki.

Ale zdajesz sobie sprawę, że nie cała "informatyka" to klepanie stronek w PHP i jak nie wiesz, to nic nie wykombinujesz? Bo za rozwiązaniem stoi teoria, którą brodate dziadki tworzyły przez dekady i albo ją znasz, albo musisz przyswoić. Żeby przyswoić, musisz wiedzieć, że w ogóle istnieje i gdzie dalej szukać. No i umieć to zrobić, jak już znajdziesz. Bez rzetelnego treningu to może być kapkę trudne. Nie twierdzę, że bez niego się nie da, wykonanie przeszczepu serca w oparciu o filmiki na youtube też co do zasady powinno być możliwe, bo nie ma żadnego powodu technicznego, by niemożliwe było.

To wylać magistra i wyciągnąć wnioski na kolejną rozmowę rekrutacyjną. Na studiach powinien był nauczyć się uczyć.

Ale ja nie mam żadnej wersji, opisuję ci osobiste doświadczenie zawodowe, od czasów szeregowego programisty do kierownika działu zatrudniającego takich ludzi. Znałem tylko jedną osobę bez studiów kierunkowych, której można było śmiało powierzyć złożoną pracę, ale to był genialnie utalentowany człowiek. A statystyki nie buduje się na wyjątkach.

Mogę tylko współczuć osób, z którymi miałeś kontakt, ale tacy to zwykle szli na nauczycieli, jeśli w ogóle "dożywali" do końca studiów. Potem umasowiono edukację i zaczęły przychodzić rządowe zamówienia na 500 ton magistra rocznie, co rzeczywiście mogło nieco zmienić poziom absolwentów. Rozumiem, też że sam spożytkowałeś czas gdzie indziej?

Pozdrawiam, Piotr

Reply to
Piotr Wyderski

No coz, trzeba by szczegoly. Bo w informatyce:

-na studiach pewnie o tej arytmetyce zmiennoprzecinkowej bylo, samouk mogl ominac.

-na studiach moze cos byc np o wydajnosci algorytow, samouk zrobi program liczacy latami,

-na studiach podaja pare ciekawych algorytmow, ktore sie moga przydac, samouk ich nie zna.

-na studiach czasem podaja pare ciekawych metod do problemow, samoukowi pozostaje dobieranie w ciemno

A to nie wiem - co jak co, ale studenci informatyki powinni troche programow na studiach napisac, i juz w pierwszej robocie nie powinni byc tacy zieloni. A student elektroniki nagle sie dowiaduje ze musi wyprodukowac certyfikat CE :-) A taki student medycyny to co - troche trupow pokroil :-)

Akurat gadalem ze stomatologiem - mlodzi nie potrafia rwac zebów, bo teraz sie juz mało rwie, ratuje sie gdy tylko mozna, i nie ma jak cwiczyc :)

J.

Reply to
J.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.