-
111. Data: 2019-07-22 09:47:27
Temat: Re: Porównywanie liczb, double float
Od: fir <p...@g...com>
W dniu wtorek, 18 czerwca 2019 08:32:55 UTC+2 użytkownik Mateusz Viste napisał:
> On Tue, 18 Jun 2019 01:33:06 +0200, Piotr Wyderski wrote:
> > 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.
>
> 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
jesli uderzasz w knajackie formy wypowiedzi "magistry" "sieroty" to twoja psychologia
poprostu objawia ze nalezysz do klasy pol-knajackich prymitywow i wyrazasz z powodow
psychologicznych swoj knajacki swiatopogląd (zapewne nie masz studiow i chcesz bronic
prostych ludzi)
moje doswiadczenie jest jak wspomnielem inne: oczywiscie studia niekoniecznie za duzo
gwarantuja ale brak studiow gwarantuje na ogol jeszcze mniej... moje doswiadczenie z
kolesiami po studiach na politechnice bylo takie ze radzili sobie nadspodziewanie
dobrze
inna rzecz jest tez taka ze nie wszyscy umieja oceniac czyjas robote, czasem
niektorzy szefowie wykazuja sie mega niezrozumieniem - bywa szefiostwo ktore ocenie
kodera jako dobrego gdy ten stuka 20 linijek kodu (w javie) na dzien a bywa takie
ktore ocenia kodera jako zlego gdy ten wystukal 9500 linijek kodu (tez w javie) na
miesiac
(skrajnie absurdalne oceny imo)
-
112. Data: 2019-07-22 10:16:39
Temat: Re: Porównywanie liczb, double float
Od: fir <p...@g...com>
W dniu wtorek, 18 czerwca 2019 14:30:41 UTC+2 użytkownik Mateusz Viste napisał:
>
> Ja piszę o programowaniu systemowym na platformy unixowo-podobne
> (FreeBSD, Linux) z naciskiem na przetwarzanie danych i obsługę wszelakich
> komunikacji sieciowych. Otóż kandydaci po studiach których zdarza mi się
> widywać często nie mają pojęcia o TCP/IP, nie potrafią obsłużyć poprawnie
> zwykłego socketu stream, o BGP nigdy w życiu nie słyszeli, a o SQL wiedzą
> tyle, że to "coś z SELECT". Ba, przerażająca większość wykłada się na
> napisaniu prymitywnego programu w C pt. "program ma pobrać z linii
> poleceń ciąg liczb i wskazać najwyższą". Śmieszne to, czy żałosne - do
> tej pory nie potrafię się zdecydować.
>
jesli nie potrafisz sie zdecydowac to wygladasz naprawde na prymitywnego czlowieka,
bo nie jest to ani smieszne ani zalosne, jest to jak najzupelniej normalne - sa to
poprostu ludzie ktorzy nic nie umieja i kazdy taki byl nim sie czegos nauczyl, wiec
przyjomanie wobec nich poz psychiocznego klowna co probujesz robic nie ma za wiele
sensu
swoja droga to wyzej to nie sa absolwencci IT po dobrej politechnice
Ci o ktorych ja mowie wlasnie byli tego dobrze nauczeni i ogolnie bylo zdolnie do
czegos takiego jak przejecie projektu
robionego ze 3 lata przez grupe kilku osob gdy jego glowny programista odszedl z
roboty i prowadzenia go - ot tak przychodzac do tej roboty po skonczeniu swojej
politechniki - co moim zdaniem
jest imponujace jak diabli
sam bylem wtedy zaznaczam o wiele slabszy, bazy danych np widzialem wtedy pierwszy
raz na oczy , choc ich sie w miesiac nauczylem bo to akurat dosyc proste..teraz nie
pracuje swoaj droga od paru lat bop jestem rpzewlekle chory, mam wrazenie ze moj
skill znacznie wzrosl (bo napisalem solo kilka projektow np moj wlasny fancy asembler
x86 org-asm, wlasne bibliotekie do gier 2d/3d na rasteryzerze green.fire.dll)
ale klimaty pracy grupowej sa mi obecnie obce (co jest zle bo kasa mi sie konczy a
zarazem przewlekle chorowanie szczerze mowiac raczej 'usuwa' mnie z rynku)
-
113. Data: 2019-07-22 17:03:54
Temat: Re: Porównywanie liczb, double float
Od: fir <p...@g...com>
W dniu wtorek, 18 czerwca 2019 17:55:02 UTC+2 użytkownik Roman Tyczka napisał:
> On 18 Jun 2019 15:20:55 GMT, Mateusz Viste wrote:
>
> >> Właśnie staram się ci powiedzieć, że ucząc się programowania, nawet od
> >> specjalistów, nauczysz się programować, być może nawet świetnie. Ale
> >> będziesz wiedział tylko "co", a nie "jak", a już zwłaszcza "po co".
> >
> > Brzmi jak jakaś religia. Ja tu o pisaniu programów, a ty o mistycznym
> > zrozumieniu świata i muchach. Faktycznie nie mówimy tym samym językiem. :)
> >
> > Proponuję EOT, bo mam obawy że ta dyskusja prowadzi donikąd...
> > Niekompatybilne protokoły, czy coś.
>
> Bo on mówi o zaawansowanej algorytmice, numeryce i matematyce, a Ty o
> rzeżbieniu w strumieniu danych, alokowaniu pamięci, ramkach, buforach i
> całym tym nieistotnym, niskopoziomowym, implementacyjnym pierdulamencie.
>
bardzo istotnym, umiec dobrze zakodowac niskopoziomowy kod jest bardzo istotne
z tym ze programowanie jest bardzo rozlegle i programowanie czegos != programowanie
czegos innego != programowanie czegos jeszcze innego itd
nie sadze jednak by to mialo znaczyc ze programisci bez studiow sa lepsi w kodowaniu
niskopoziomowego kodu
chyba prosciej zalozyc ze kazdy umie robic to czego sie nauczyl a to roznie sie po
ludziach rozklada
-
114. Data: 2019-07-22 17:24:46
Temat: Re: Porównywanie liczb, double float
Od: fir <p...@g...com>
W dniu piątek, 12 lipca 2019 07:27:56 UTC+2 użytkownik DMR napisał:
> > Zamieszcze tu po raz 473 w ciagu 20 lat podstawową formułkę
> > (Ba! KANON!)
>
>
> To ja poprosiłbym o jakiś patent na odporne na zaokrąglenia rozdzielenie części
całkowitej i ułamkowej w zmiennej typu double.
>
>
>
> > ponaglenia o pilną zapłatę 0.00PLN
>
>
> No właśnie.
> Przykładowo, muszę zrobić: 12345.6789 zł -> 12345 zł 68 gr
>
> Wiadomo:
>
> double suma, f;
> int zlote, grosze;
>
> ...
>
> suma += 0.005;
>
> zlote = (int)suma;
> f = suma - zlote;
> grosze = (int)(f * 100.0);
>
> Problemy mogą pojawić w przypadku wartości praktycznie równych wartościom
całkowitym.
> Gdyby na skutek jakichś zaokrągleń wartość f okazała się ujemna, to nie ma problemu
- (int) i tak "dociągnie" ją do zera.
>
> Gorzej, gdyby np. suma = 1234.9999999999999997, za to teoretycznie f =
0.9999999999999997 za sprawą zabłąkanego bitu na końcu przeskoczyła na f =
1.0000000000000001.
> Wtedy wyjdzie 1234 zł 100 gr...
>
> Chyba, że nie potrzebnie się martwię.
> Testowałem to wielokrotnie dla miliardów złośliwie wygenerowanych danych "z
pogranicza" - ani razu się nie wywaliła.
>
> No, ale... :-)
chyba cos kolega piepszy
zlote = (int)suma;
f = suma - zlote;
grosze = (int)(f * 100.0);
nie chce mi sie nad tym za dlugo zastanawiac ale na oko to bedzie dzialac
zawsze poprawnie (zakladam ze wartosc suma jest dodatnia i ze chodzi o zaokraglenie w
dol, nie mam pojecia jakie reguly zaokraglania pieniedzy panuja w bankach)
-
115. Data: 2019-07-22 21:56:48
Temat: Re: Porównywanie liczb, double float
Od: fir <p...@g...com>
W dniu środa, 3 lipca 2019 00:42:54 UTC+2 użytkownik J.F. napisał:
> Dnia Tue, 2 Jul 2019 22:56:19 +0200, AK napisał(a):
> > On 2019-06-26 06:21, J.F. wrote:
> >>> PS: Zapsz si ejednak na ten kurs numeryki. Moze jeszcze gdzies ucza o
> >>> float...
> >>
> >> No ale przeciez nie chcesz wiedziec jak floaty sa zapisane :-P
> >>
> >> To po takim kursie bediesz mial metlik - pelno ostrzezen o mozliwych
> >> bledach i zero rozwiazan :-)
> >
> > Hehe, no racja :)
> > Tyle, ze w "moich czasach" nie uczyli o bebechach formatow fp (bo co
> > maszyna to byl inny, ba! nawet bajt na CDC mial 9 bitow;), jeno wlasnie
> > jak ich _dobrze_ uzywac przy takiej wielosci formatow.
> >
> > PS: Zeb nie bylo, Chwale IEEE754, ale glownie ze wzgledu na ulatwienie
> > (ze wzgledu na ustandaryzowanie) dla tworcow koprocesorow i kompilatorow.
> > Dla uzytkownikow/programistow "stare" zasady pozostaja wciaz w mocy.
>
> IMO - powstal chyba tylko po to, zeby klienci nie narzekali, ze ten
> sam program (zrodlowy) wykonany na dwoch roznych komputerach daje
> rozny wynik (z powodu zaokraglen/obciec).
>
> Ale ma jedna zalete - z powodu przyjecia podstawy 2, srednia dwoch
> liczb jest zawsze pomiedzy nimi.
> Przy podstawie 10 lub 16 moze byc juz inaczej
> np 5.008+5.009 = 10.017 -> 1.002e1 .. /2 = 5.010
>
> J.
moim zdaniem jakis powazniejszy system do arytmetyki na liczbach 'float' powinien
chyba wykonywac operacje na zadawanej precyzji - bo 1) im wiecej precyzji tym wolniej
2) czesto potrzebujesz mniej niz na zwyklych float doublach - byloby wiec szybciej
(na przyklad nie potrzebujesz 50 bitow precyzji sinusa liczonego na liczbie zapodanej
na osi x tez z 50-cioma bitami precyzji - moze wystarczyc nap 15 bitow x i 10 bitow y
czy cos takiego 3) ew daloby tez sposobnosc policzenia wiecej niz nawet 80 bitow od
czasu do czasu
moim zdaniem powazna arytmetyka na float raczej powinan dawac mozliwosc kontrolowania
tych dlugiosci bitowych czy jak to nazwac
nic tez nie stoi na przeszkodzie by reprezentacji bylo wiecej obok siebie (powinno
ich byc wiecej bo rozne lepiej nadaja sie do roznych rzeczy)
-
116. Data: 2019-07-24 19:19:35
Temat: Re: Porównywanie liczb, double float
Od: DMR <m...@g...com>
Chyba coś kolega "piepszy".
Nie chce mi się tego czytać, ale na oko właśnie tak jest.
-
117. Data: 2019-07-24 21:13:35
Temat: Re: Porównywanie liczb, double float
Od: AK <n...@n...net>
On 2019-07-24 19:19, DMR wrote:
> Chyba coś kolega "piepszy".
>
> Nie chce mi się tego czytać, ale na oko właśnie tak jest.
To po prostu upierdliwy troll.
AK
-
118. Data: 2019-07-24 22:39:21
Temat: Re: Porównywanie liczb, double float
Od: fir <p...@g...com>
W dniu środa, 24 lipca 2019 19:19:36 UTC+2 użytkownik DMR napisał:
> Chyba coś kolega "piepszy".
>
> Nie chce mi się tego czytać, ale na oko właśnie tak jest.
to swietnie bo na wykłocanie sie z matolkami nie mam czasu
-
119. Data: 2019-07-26 20:35:01
Temat: Re: Porównywanie liczb, double float
Od: AK <n...@n...net>
On 2019-07-24 22:39, fir wrote:
> to swietnie bo na wykłocanie sie z matolkami nie mam czasu
No jakze to?
Przecie tu na grupie "od lat" gadasz glownie sam z soba ?
AK
-
120. Data: 2020-01-12 19:17:14
Temat: Re: Porównywanie liczb, double float
Od: DMR <m...@g...com>
Sorunia za crossa, ale tu też o tym pisałem. :-)
> Przykładowo, muszę zrobić: 12345.6789 zł -> 12345 zł 68 gr
>
> Wiadomo:
>
> double suma, f;
> int zlote, grosze;
>
> ...
>
> suma += 0.005;
>
> zlote = (int)suma;
> f = suma - zlote;
> grosze = (int)(f * 100.0);
>
> Problemy mogą pojawić w przypadku wartości praktycznie równych
> wartościom całkowitym.
> Gdyby na skutek jakichś zaokrągleń wartość f okazała się ujemna,
> to nie ma problemu - (int) i tak "dociągnie" ją do zera.
>
> Gorzej, gdyby np. suma = 1234.9999999999999997, za to teoretycznie
> f = 0.9999999999999997 za sprawą zabłąkanego bitu na końcu przeskoczyła
> na f = 1.0000000000000001.
> Wtedy wyjdzie 1234 zł 100 gr...
Ale jeśli zrobię tak:
grosze = (int)(f * 99.99);
to problem zniknie raz na zawsze.
Rzecz jasna, wtedy sumy typu x.9951 zł przejdą na x zł 99 gr, co oczywiście formalnie
jest błędem, ale - z drugiej strony - jeszcze poważniejszym błędem jest zaokrąglanie
sum do pełnych groszy, przy jednoczesnym rozbijaniu tematu o pojedyncze miligrosze.
No, ale pytanie jest zasadnicze - czy na skutek zaokrągleń, możliwe jest zajście
przypadku:
(Double - (int)Double) * 1Ex >= 1Ex
dla "rozsądnych" wartości x (biorąc po uwagę zakresy typów, powiedzmy: 0-8)?
Ktoś może potwierdzić/zaprzeczyć?