Czy można przecować w jakiś sposób liczbę o miliardzie cyfr?

0

Witam. Potrzebuję przechować wynik pewnych operacji, które mogą zwrócić rezultat mający nie więcej niż miliard cyfr. Czy jest na to jakiś sposób?

0

W stringu, czy C-stringu to zajmie ok 1GB pamięci.
Minimalnie liczba o miliardzie cyfr zajmie ci 4 bity * miliard, czyli prawie 0,5GB. Poważnie chcesz taki wynik przechowywać? Przecież i tak nic z tym nie będziesz w stanie zrobić.

0

Shalom, takie rzeczy się przez proxy w pliku trzyma... chociaż o efektywności wolę nie mówić.

0

Ja tu tylko takie teoretyczne dywagacje snułem ;) Nigdy nie operowałem takimi wielkimi "liczbami", ani danymi w ogóle :)
Ale wydaje mi się ze autor lekko przesadził z miliardem cyfr ;]

0

Nie ma sensownych rzeczy, które mają miliard cyfr. 10(109) możliwości? To już atomów w układzie słonecznym jest mniej...
Jeśli to dane z jakiegoś badania, nic nie ma prawa mieć takiej precyzji.
Są trzy możliwości:

  1. rozwinięcie dziesiętne liczby niewymiernej - żadne obliczenia nie potrzebują takiej precyzji.
  2. rozwinięcie dziesiętne ułamka okresowego - trzeba to trzymać jako ułamek.
  3. to wynik jakichś ezoterycznych obliczeń (jaka jest szansa trafienia kilka razy pod rząd na zestaw tych samych 3 cząsteczek w całym wszechświecie etc, a póżniej podnosimy to do którejś potęgi) - w takim wypadku aproksymacja wyniku w formie notacji naukowej z kilkoma miejscami po przecinku, np. 3,53453E-1034 będzie ok.
0

@up, wszystko prawda, ale może autor chce wyznaczyć dużo cyfr rozwinięcia dziesiętnego liczby \pi? Do pobicia rekordu ten głupi miliard cyfr nie wystarczy.

0

No w takim wypadku niech zapisuje co liczbę w pliku, do obliczeń i tak nikt tego nie będzie używał.

0

Określiłem już sobie dokładniej, liczba nie będzie mieć więcej niż 615 cyfr. Co nie zmienia mojego pytania - w jakis sposób przechować coś takiego w programie pisanym w C++?

0

Przechowuj tą liczbę w postaci napisu, w stringu.
Wiesz, miliard cyfr, a 615 to jest kolosalna różnica ;]
0,5GB pamieci -> 2,4MB ;] //quetz: jak Ci ten megabajt wyszedl z 615 znakow??

0

polecam cos lepsiejsego niz big-int z sourceforge'a, "SymbolicC++" - bardzo prosta a zarazem funkcjonalna biblioteka do mat. operacji symbolicznych a w niej plik "verylong.h" - sam to uzywam z powodzeniem czesto i nigdy sie nie zawiodlem, choc nie wiem czy wydajnoscia bije tego big-int'a.
Tylko domyslny download jest troche spaprany, trzeba uporzadkowac strukture plikow i folderow (splaszczyc) + drobne fixy w kodzie ale ogolnie jest git.

1 użytkowników online, w tym zalogowanych: 0, gości: 1