Ogromne liczby
Ostatnio zmodyfikowano 2013-03-21 19:58
kicknoob Temat założony przez niniejszego użytkownika |
Ogromne liczby » 2013-03-21 16:01:53 Witam , musze napisac program w ktorym uzytkownik podaje jakas liczbe po czym program obliczy pierwiastek z tej liczby . Wszystko wydaje sie proste gdyby nie to ze owa liczba moze skladac sie z 255 cyfr . Wydaje mi sie ze nie ma tak duzej zmiennej . A jedyne biblioteki jakich moge uzyc to STL, Iostream oraz cmath. |
|
pekfos |
» 2013-03-21 16:05:08 Więc sam zaimplementuj taki typ. Dla 255 cyfr będziesz potrzebował przynajmniej 850-bitowego typu liczbowego. |
|
Elaine |
» 2013-03-21 16:53:48 851-bitowego. 850 bitów wystarcza tylko gdzieś do 7.50752e+255. |
|
kicknoob Temat założony przez niniejszego użytkownika |
» 2013-03-21 17:28:15 Czy do implementacji użyc enumertorow ? A jesli tak to w jaki sposob przypisac tak ogromna liczbe bo zapis : enum zmienna { zero, maxx = 7.50752e + 255 };
nie działa |
|
pekfos |
» 2013-03-21 17:33:02 Oczywiście, że nie działa, bo nie tędy droga. Utwórz klasę z tablicą bajtów na dane i zaimplementuj arytmetykę. |
|
Chlorek |
» 2013-03-21 17:47:15 Zainspiruj się BigInt'em z Java'y (myślę, że znajdziesz coś w google). Aby lepiej przybliżyć o co chodzi powiem tak, stwórz klasę która będzie przechowywała twoją liczbę w formie ciągu znaków, a to właściwie daje ci nielimitowane pole do popisu. Potem tylko definiujesz operatory dodawania, odejmowania, pierwiastkowanie itd.. Oczywiście nie można dodawać ciągów znaków, więc będziesz musiał napisać algorytm który przeliczy ci to. Trochę to mało istotne, ale myślałem ostatnio by dodać taką funkcjonalność do mojej "biblioteki" - taki pomocny zestaw klas i funkcji, zwłaszcza do operacji na różnego typu zmiennych i obiektach. Jak napiszesz coś mógłbyś się tym podzielić? - Przydałoby mi się też, a zaoszczędzi pracy. |
|
m4tx |
» 2013-03-21 18:12:26 Jak już to BigDecimalem. Warto też wspomnieć, że klasa ta nie obsługuje nawet pierwiastkowania out-of-the-box (aczkolwiek jeśli by @autor tematu chciał algorytm do tego, to tutaj jest całkiem fajny: Demonstration of high-precision arithmetic with the BigDouble class). EDIT: @down Ah chyba, że chodzi ci o liczby zmiennoprzecinkowe, jeśli tak to już wiem co miałeś na myśli. |
Dokładnie tak. |
|
Chlorek |
» 2013-03-21 19:11:03 @m4tx Czemu nie BigInteger, a BigDecimal? Sam używałem BigIntegerów i nie wydaje mi się bym coś pomylił.
#Edit Ah chyba, że chodzi ci o liczby zmiennoprzecinkowe, jeśli tak to już wiem co miałeś na myśli. |
|
« 1 » 2 |