Thread View: alt.pl.comp.lang.csharp
8 messages
8 total messages
Started by Grzegorz
Mon, 28 Dec 2009 10:18
[OT] jak się liczy wielkie liczby?
Author: Grzegorz
Date: Mon, 28 Dec 2009 10:18
Date: Mon, 28 Dec 2009 10:18
13 lines
1340 bytes
1340 bytes
Witam Tak mnie naszło, jeżeli zmienna np: float ma ograniczoną wielkość, to w jaki sposób liczy się wielkie liczby, np. liczba PI do milionowego miejsca po przecinku? W mojej filozofii robi się to tak, że dzieli się liczbę na kilkanaście zmiennych i na ostatniej wykonuje się obliczenia, po czym jeśli zachodzi konieczność zwiększa się poprzedzającą, później poprzedzającą poprzedzającą itd. Ale to chyba nie takie rozwiązanie? Więc jak dodać dwie liczby, które mają po np. 200 cyfr? Pozdrawiam, Grzegorz.
Re: jak się liczy wielkie liczby?
Author: Maciek sq7obj
Date: Mon, 28 Dec 2009 14:10
Date: Mon, 28 Dec 2009 14:10
3 lines
1226 bytes
1226 bytes
http://www.codeproject.com/KB/cs/biginteger.aspx Możliwe że BigFloat też jest. Zajrzyj w kod, może to Ci pomoże.
Re: [OT] jak się liczy wielkie liczby?
Author: Maciej Pilichowski
Date: Tue, 29 Dec 2009 07:31
Date: Tue, 29 Dec 2009 07:31
10 lines
1456 bytes
1456 bytes
On Mon, 28 Dec 2009 11:18:58 +0100, Grzegorz <brak@maila.pl> wrote: >W mojej filozofii robi się to tak, że dzieli się liczbę na kilkana¶cie >zmiennych i na ostatniej wykonuje się obliczenia, po czym je¶li zachodzi >konieczno¶ć zwiększa się poprzedzaj±c±, póĽniej poprzedzaj±c± >poprzedzaj±c± itd. Ale to chyba nie takie rozwi±zanie? Trzyma sie w tablicy, a nie osobnych zmiennych. milego dnia, hej
Re: [OT] jak się liczy wielkie liczby?
Author: Paweł Kierski
Date: Tue, 29 Dec 2009 08:43
Date: Tue, 29 Dec 2009 08:43
20 lines
1668 bytes
1668 bytes
Grzegorz wrote:
> Witam
> Tak mnie naszło, jeżeli zmienna np: float ma ograniczoną wielkość, to w
> jaki sposób liczy się wielkie liczby, np. liczba PI do milionowego
> miejsca po przecinku?
>
> W mojej filozofii robi się to tak, że dzieli się liczbę na kilkanaście
> zmiennych i na ostatniej wykonuje się obliczenia, po czym jeśli zachodzi
> konieczność zwiększa się poprzedzającą, później poprzedzającą
> poprzedzającą itd. Ale to chyba nie takie rozwiązanie?
>
> Więc jak dodać dwie liczby, które mają po np. 200 cyfr?
Dla C/C++ jest GMP ( http://gmplib.org/ ) - nie wiem, czy ktoś
pokusił się o wrapper dla C#. Wprawdzie google podpowiedziały jeden
wątek, gdzie gość chwalił się, że napisał, ale docelowo było 404...
--
Paweł Kierski
news@pkierski.net
Re: [OT] jak się liczy wielkie liczby?
Author: Marcin Kosobudzki
Date: Wed, 30 Dec 2009 19:16
Date: Wed, 30 Dec 2009 19:16
18 lines
1913 bytes
1913 bytes
On Mon, 28 Dec 2009 11:18:58 +0100, Grzegorz <brak@maila.pl> wrote: >Więc jak dodać dwie liczby, które mają po np. 200 cyfr? Ponad 10 lat temu bawiłem się z kolegą w szukanie największej liczby pierwszej (była duża nagroda :), musielismy więc w naszych algorytmach operować na liczbach składających się z dziesiątek tysięcy cyfr. Dużo się nie wysilając napisaliśmy sobie banalną bibliotekę wykonującą podstawowe działania arytmetyczne na liczbach reprezentowanych przez listy. Każda cyferka w oddzielnym elemencie listy, listy nieskończonej długości... a metody wykonujące działania robiły to tak, jak się to robi na papierze za pomocą ołówka (w słupkach). Odpowiednie metody numeryczne i liczyliśmy też pierwiastki, logarytmy i co tylko nam było potrzebne. Ograniczała nas tylko pamięć (~4-8MB) i prędkość naszych procków (~33Mhz). Może to było i głupie, troche naiwne, bo żeby coś ciekawego osiągnąć napewno trzeba by do tego inaczej podejść, ale zabawa była przednia. Liczył się fakt, że żąglowaliśmy liczbami których nikt nie potrafił nazwać.
Re: [OT] jak się liczy wielkie liczby?
Author: Paweł Kierski
Date: Thu, 31 Dec 2009 11:14
Date: Thu, 31 Dec 2009 11:14
19 lines
1702 bytes
1702 bytes
W dniu 2009-12-30 20:16, Marcin Kosobudzki pisze:
> On Mon, 28 Dec 2009 11:18:58 +0100, Grzegorz<brak@maila.pl> wrote:
>
>> Więc jak dodać dwie liczby, które mają po np. 200 cyfr?
>
> Ponad 10 lat temu bawiłem się z kolegą w szukanie największej liczby
> pierwszej (była duża nagroda :), musielismy więc w naszych algorytmach
> operować na liczbach składających się z dziesiątek tysięcy cyfr. Dużo
> się nie wysilając napisaliśmy sobie banalną bibliotekę wykonującą
> podstawowe działania arytmetyczne na liczbach reprezentowanych przez
> listy.
[...]
Hmmm... szkoda, że z internetem było wtedy w Polsce tak sobie - GMP
istnieje już ok. 18 lat... 8-)
--
Paweł Kierski
news@pkierski.net
Re: [OT] jak się liczy wielkie liczby?
Author: Paweł Kierski
Date: Thu, 31 Dec 2009 11:17
Date: Thu, 31 Dec 2009 11:17
24 lines
1860 bytes
1860 bytes
W dniu 2009-12-29 09:43, Paweł Kierski pisze:
> Grzegorz wrote:
>> Witam
>> Tak mnie naszło, jeżeli zmienna np: float ma ograniczoną wielkość, to
>> w jaki sposób liczy się wielkie liczby, np. liczba PI do milionowego
>> miejsca po przecinku?
>>
>> W mojej filozofii robi się to tak, że dzieli się liczbę na kilkanaście
>> zmiennych i na ostatniej wykonuje się obliczenia, po czym jeśli
>> zachodzi konieczność zwiększa się poprzedzającą, później poprzedzającą
>> poprzedzającą itd. Ale to chyba nie takie rozwiązanie?
>>
>> Więc jak dodać dwie liczby, które mają po np. 200 cyfr?
>
> Dla C/C++ jest GMP ( http://gmplib.org/ ) - nie wiem, czy ktoś
> pokusił się o wrapper dla C#. Wprawdzie google podpowiedziały jeden
> wątek, gdzie gość chwalił się, że napisał, ale docelowo było 404...
Znalazłem via angielska Wikipedia:
http://www.emilstefanov.net/Projects/GnuMpDotNet/
--
Paweł Kierski
news@pkierski.net
Re: [OT] jak się liczy wielkie liczby?
Author: Marcin Kosobudzki
Date: Thu, 31 Dec 2009 16:02
Date: Thu, 31 Dec 2009 16:02
9 lines
1228 bytes
1228 bytes
On Thu, 31 Dec 2009 12:14:50 +0100, Paweł Kierski <news@pkierski.net> wrote: > Hmmm... szkoda, że z internetem było wtedy w Polsce tak sobie - GMP >istnieje już ok. 18 lat... 8-) Faktycznie, były to czasy gdy nie mieliśmy pojęcia o internecie, poza tym byliśmy pascalowi (wątpie aby był wraper 8-), a nawet gdyby był, to nie było by już takiej zabawy.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads