-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.PO
STED!not-for-mail
From: bartekltg <b...@o...pl>
Newsgroups: pl.comp.programming
Subject: Re: porownanie wyniku mnozenia integerow
Date: Wed, 25 May 2011 20:39:56 +0200
Organization: http://onet.pl
Lines: 74
Message-ID: <irjids$tj3$1@news.onet.pl>
References: <irgtcb$np6$1@inews.gazeta.pl>
NNTP-Posting-Host: 144-mi3-6.acn.waw.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1306348796 30307 85.222.69.144 (25 May 2011 18:39:56 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Wed, 25 May 2011 18:39:56 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.17) Gecko/20110414
Thunderbird/3.1.10
In-Reply-To: <irgtcb$np6$1@inews.gazeta.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:190694
[ ukryj nagłówki ]W dniu 2011-05-24 20:28, t...@g...SKASUJ-TO.pl pisze:
> witam,
>
> jak sprawdzic czy dla integerow a,b,c,d zachodzi
>
> a*b == c*d
Jak a i b są 32 bitowe, to piszemy ((long long)a)*b i porównujemy.
Jak 64, a maszyna x64, to VS i gcc mają jakieś typy 128bitowe
i podobnie. W strasznym języku ja J mamy duże liczby;)
> Chodzi raczej o to, czy ktos zna zestaw warunkow
> typu mnozenie, dodawanie
> modulo,
Ok, a jak podam rozwiązanie, to co dostane?
Masz porównać ab == cd
porównaj ab == cd (mod p_i)
dla kilku liczb pierwszych, w miarę dużych i takich,
by p^2 mieściło się w zakresie.
Z górką wystarczy 5 takich liczb*)
Jeśli m==n (mod p_i), dla i=1..k
to m==n jeżeli tylko m i n < p_1*p_2*...*p_k
Nazywa się toto Chińskie twierdzenie o resztach.
p_i nie muszą być nawet pierwsze, wystarczy, że są względnie pierwsze.
*)P< sqrt(MAXINT), ale możemy dobrać niewiele mniejsze.
p_1*..*p^5 wyniesie ponad MAXINT^2
Mnożenia a*b wykonujesz mod p: ((a%p)*(b%p))%p
więc nigdy nie wyskoczysz poza zakres.
Wydaje się, że więcej pracy niż przy ((long long)a)*b==((long long)c)*d,
ale za to ładnie skaluje się, liniowo ze względu na ilość czynników
w iloczynie (czego nie można powiedzieć o mnożeniu dużych liczb).
No i jest niezależne od języka, maszynerii i tego, czym tak naprawdę
są te inty.
Ktoś podesłał pomysł rozkładu na czynniki pierwsze. Można pociągnąć
ten pomysł. Policzymy NWD (najwiekszy wspolny dzielnik)
dla wszytkich możliwytch par i będziemy skracać.
x=NWD(a,c);
a=a/x; c=c/x;
i podobnie dla par a:d, b:c, b:d (najpierw skracamy, pozniej
liczymy kolejne NWD)
Po wszystkich skróceniach, jeśli iloczyny były równe, otrzymamy
cztery jedynki.
Algorytm liczący NWD znajdziesz bez problemu, jest prosty i szybki,
a imię jego Euklides.
Chyba trudniej byłoby ze stwierdzeniem, która liczba jest większa.
pozdrawiam
bartekltg
Następne wpisy z tego wątku
- 26.05.11 06:40 Paweł Kierski
- 26.05.11 12:21 Wojciech \"Spook\" Sura
- 26.05.11 13:07 bartekltg
- 26.05.11 21:14 Jędrzej Dudkiewicz
- 03.06.11 14:17 Pawel WQLQS
Najnowsze wątki z tej grupy
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-08-06 Gdynia => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-08-06 Białystok => Inżynier oprogramowania .Net <=
- 2025-08-06 "[...] sejmowe wystąpienie posłanki Klaudii Jachiry, która zakończyła je słowami ,,Sława Ukrainie"."
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Panuje się 181 159,42 zł./mies. na posła w 2026r.
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Czy cos fi przechodzi przez trafo separujące?
- 2025-08-05 kajaki i promile
- 2025-08-05 Re: Tesla jest bezpieczna, wczoraj spaliła się doszczętnie na Ursynowie i nikomu się nic nie stało
- 2025-08-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-08-05 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-05 B2B i książka przychodów i rozchodów
- 2025-08-04 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML