-
Data: 2010-09-21 11:35:11
Temat: Re: Porównywanie ułamków zwykłych
Od: "Wojciech \"Spook\" Sura" <spook"mad@hatter"op.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia 21-09-2010 o 12:20:47 Mariusz Marszałkowski <m...@g...com>
napisał(a):
> Propozycja pierwsza:
> epsilon = dobrać_doświadczalnie;
> return fabs( (double)a/b - (double)c/d ) < epsilon ;
W taki właśnie sposób porównuję ułamki zmiennoprzecinkowe. Jednak trochę
martwi mnie sytuacja, w której mogę otrzymać informację, że dwa ułamki są
równe, gdy w rzeczywistości będą różniły się o mniej niż epsilon (a
wszystkie składowe ułamków są intami, co - przynajmniej teoretycznie -
umożliwia deterministyczne porównania).
> Propozycja druga:
> a /= GCD(a,c);
> c /= GCD(a,c);
> a /= GCD(a,b);
> b /= GCD(a,b);
> c /= GCD(c,d);
> d /= GCD(c,d);
> b /= GCD(b,d);
> d /= GCD(b,d);
> return a*d == c*b;
Złośliwy przykład:
11/2147483629 i 17/2147483647.
Zarówno końcowe a*d jak i c*b przekroczy zakres long inta.
> Pozdrawiam
Pozdrawiam -- Spook.
--
! ._______. Warning: Lucida Console sig! //) !
! || spk || www.spook.freshsite.pl / _ """*!
! ||_____|| spook at op.pl / ' | ""!
! | ___ | tlen: spoko_ws gg:1290136 /. __/"\ '!
! |_|[]_|_| May the SOURCE be with you! \/) \ !
Następne wpisy z tego wątku
- 21.09.10 11:37 Tomasz Kaczanowski
- 21.09.10 11:40 Wojciech \"Spook\" Sura
- 21.09.10 11:42
- 21.09.10 11:47 Tomasz Kaczanowski
- 21.09.10 11:59 Mariusz Kruk
- 21.09.10 12:05 Mateusz Ludwin
- 21.09.10 12:14 Marcin 'Qrczak' Kowalczyk
- 21.09.10 13:29 Mariusz Marszałkowski
- 21.09.10 14:20 Wojciech \"Spook\" Sura
- 21.09.10 14:21 Wojciech \"Spook\" Sura
- 21.09.10 14:22 Wojciech \"Spook\" Sura
- 21.09.10 16:27 Piotr Chamera
- 20.09.10 03:37 j...@f...adres.to
- 21.09.10 18:09 nightwatch77
- 21.09.10 20:14 Marcin 'Qrczak' Kowalczyk
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-21 Warszawa => Key Account Manager IT <=
- 2025-02-21 Warszawa => Data Engineer (Tech Lead) <=
- 2025-02-21 Aliexpress zaczął oszukiwać na bezczelnego.
- 2025-02-21 Warszawa => System Architect (Java background) <=
- 2025-02-21 Kula w łeb
- 2025-02-21 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-21 Warszawa => Solution Architect (Java background) <=
- 2025-02-21 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-02-21 Pawel S
- 2025-02-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-02-21 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-21 Chrzanów => Programista NodeJS <=
- 2025-02-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-21 Warszawa => Administrator Systemów Windows IT <=
- 2025-02-21 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=