-
Path: news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsf
eed1.plix.pl!wsisiz.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!not-for-mail
From: qwak <q...@w...pl>
Newsgroups: pl.comp.programming
Subject: Re: Porównywanie ułamków zwykłych
Date: Wed, 22 Sep 2010 10:16:08 +0200
Organization: ATMAN
Lines: 32
Message-ID: <i7ce08$bgl$1@node1.news.atman.pl>
References: <op.vjdmp0xe8x7o78@notebook>
NNTP-Posting-Host: staticline18681.toya.net.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node1.news.atman.pl 1285143368 11797 85.89.190.112 (22 Sep 2010 08:16:08
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Wed, 22 Sep 2010 08:16:08 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.12) Gecko/20100826
Thunderbird/3.0.7
In-Reply-To: <op.vjdmp0xe8x7o78@notebook>
Xref: news-archive.icm.edu.pl pl.comp.programming:186958
[ ukryj nagłówki ]W dniu 21.09.2010 11:45, Wojciech "Spook" Sura pisze:
> Zastanawiam się, w jaki sposób porównywać ułamki zwykłe?
>
> Przypuśćmy, że mam dane dwa ułamki, a/b i c/d. Chcę sprawdzić, czy są
> równe.
Korzystamy z:
a/b == c/d <=> a*d == b*c
Pozostaje kwestia przekraczania zakresów przy mnożeniu. I tu 2 rozwiązania:
- skorzystać z biblioteki, np. GMP
- samemu zaimplementować mnożenie:
Jeśli a, b, c i d masz w N bitowych zmiennych to możesz potraktować je
jako 2-cyfrowe liczby N/2 bitowe (tj w systemie o podstawie: 2^(N/2)).
Takie liczby możesz przemnożyć stosując "algorytm szkolny" ("mnożenie
pisemne", oczywiście w systemie o podstawie 2^(N/2), a nie 10), przy
czym wynik mnożenia dwóch N/2 bitowych cyfr mieści się na N bitach (więc
stosujesz N-bitowy typ do obliczeń).
Całość wymaga 4 mnożeń, kilku dodawań, operacji bitowych...
Wynik będzie liczbą składającą się z co najwyżej 4ech N/2 bitowych cyfr.
Takie liczby łatwo porównasz cyfra po cyfrze.
Jest jeszcze kwestia znaków (liczb ujemnych), tych zgodność możesz
jednak sprawdzić przed powyższymi obliczeniami. W przypadku zgodności
możesz liczyć na wartościach bezwzględnych używając N-bitowego typu bez
znaku.
--
Piotr Beling - http://qwak.w8.pl http://warcaby.w8.pl http://bcalc.w8.pl
Następne wpisy z tego wątku
- 22.09.10 09:37 Mateusz Ludwin
- 22.09.10 20:04 nightwatch77
- 23.09.10 01:21 Mariusz Marszałkowski
- 23.09.10 09:05 Piotr Chamera
- 23.09.10 11:21 Piotr Chamera
- 23.09.10 11:21 Wojciech \"Spook\" Sura
- 23.09.10 19:30 Remek
- 23.09.10 19:32 Remek
- 23.09.10 22:49 Marcin Biegan
- 24.09.10 00:09 bartekltg
- 24.09.10 02:15 Mariusz Marszałkowski
Najnowsze wątki z tej grupy
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi
- 2024-12-20 Opole => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-20 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-20 Rzeszów => International Freight Forwarder <=
- 2024-12-20 Katowice => Key Account Manager (ERP) <=
- 2024-12-20 Ekstradycja
- 2024-12-20 Mikroskop 3D
- 2024-12-20 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-20 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe
- 2024-12-20 Warszawa => Full Stack .Net Engineer <=
- 2024-12-20 Warszawa => Programista Full Stack .Net <=
- 2024-12-19 Kamerka sam. na tył
- 2024-12-20 Jak być bezpiecznym z Li-Ion?