Wątek zablokowany 2018-07-29 15:56 przez Patryk27.

obliczenia na wielkich liczbach

0

Chodzi o liczby o tysiącach cyfr dziesiętnych, do miliona powiedzmy.

podstawowe operacje: a + b, a * b i a / b.

Jakie są tu możliwości, znaczy ile czasu trwa mnożenie liczb z milionem cyfr, a ile dzielenie?

Sumowanie sam mogę sobie zrobić: a + b = suma miliona bajtów z przeniesieniem, ewentualnie po biorę po 4 lub 8 bajtów co skróci czas kilka razy.

0

GMP.

0
Patryk27 napisał(a):

GMP.

jakie tam są czasy dla liczb o długości miliona cyfr?

0

Nie jestem pewien, ale jeśli GMP nie da rady zmieścić się w Twoim docelowym czasie wykonywania, prawdopodobnie nic lepszego nie znajdziesz - tak że najlepiej abyś sprawdził sam.

0
exp napisał(a):
Patryk27 napisał(a):

GMP.

jakie tam są czasy dla liczb o długości miliona cyfr?

Sprawdź sobie, tu Masz o funkcjach na liczbach całkowtych: https://gmplib.org/manual/Integer-Functions.html#Integer-Functions

0
Patryk27 napisał(a):

Nie jestem pewien, ale jeśli GMP nie da rady zmieścić się w Twoim docelowym czasie wykonywania, prawdopodobnie nic lepszego nie znajdziesz - tak że najlepiej abyś sprawdził sam.

Chyba miałeś na myśli: nic gorszego nie sposób znaleźć.

0

Dlaczego?

0
Patryk27 napisał(a):

Dlaczego?

Jest to skrajnie niewygodne w każdym możliwym sensie,
to nie ma nawet skompilowanych plików - lib, które są zwykle używane w c wraz z .h.
Totalny szajs.

1

Czekamy aż napiszesz coś lepszego.
Póki co wejdź na https://www.wolframalpha.com/examples/mathematics/numbers/arbitrary-precision/ - bo to chyba jedyne miejsce gdzie nie musisz nic robić.

2

to nie ma nawet skompilowanych plików - lib, które są zwykle używane w c wraz z .h.

Jak rozumiem przerasta Cię pobranie źródeł z internetu i odpalenie ./configure && make && make install? (https://gmplib.org/manual/Installing-GMP.html)

Może w takim razie nie powinieneś zabierać się za zabawy z liczbami wielkimi na 512 kilobajtów.

0

"Jest to skrajnie niewygodne w każdym możliwym sensie,
to nie ma nawet skompilowanych plików - lib, które są zwykle używane w c wraz z .h.
Totalny szajs."

Herezje Piszesz, to jest wspaniała biblioteka, bardzo szybka, łatwa w użyciu, ma dużo wbudowanych funkcji... Już chyba Ci tylko Excel pozostaje, jak tego nie Ogarniasz:)

0

A czego oczekiwaliscue od Wila? XD

0
Patryk27 napisał(a):

to nie ma nawet skompilowanych plików - lib, które są zwykle używane w c wraz z .h.

Jak rozumiem przerasta Cię pobranie źródeł z internetu i odpalenie ./configure && make && make install? (https://gmplib.org/manual/Installing-GMP.html)

Może w takim razie nie powinieneś zabierać się za zabawy z liczbami wielkimi na 512 kilobajtów.

A to użyć w C++Buliderze - pod Windows?

0

https://gmplib.org/manual/Installing-GMP.html#Installing-GMP

Problem jest taki, że Autotools raczej nie jest przystosowane do C++Buildera ani do BCC, więc wykorzystanie GMP może nie być w tym wypadku możliwe.
Z tego co pamiętam, C++Builder ma dołączone biblioteki Boost. Może zawiera też Boost.Multiprecision.

EDIT
Zakładam, że masz nową wersję Buildera, a nie 6 xD

Tu jest coś o Boost na wiki
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Boost

0

Może ktoś ma to skompilowane na zwyczajny procesor 32bitowy, np. w wersji do sse4.1, i wrzuci tu .lib plus te pliczki .h.

2

Boost::multiprecision jako implementacji może używać gmp. https://www.boost.org/doc/libs/1_67_0/libs/multiprecision/doc/html/index.html

Co do dostarczenia Ci plików lib, bez jaj chłopie, jesteś programistą czy uczniakiem? Skompiluj sobie.

0
nalik napisał(a):

Boost::multiprecision jako implementacji może używać gmp. https://www.boost.org/doc/libs/1_67_0/libs/multiprecision/doc/html/index.html

Co do dostarczenia Ci plików lib, bez jaj chłopie, jesteś programistą czy uczniakiem? Skompiluj sobie.

Po co mi takie złom - rozwalony w setkach plików przeróżnego typu?
Musiałbym instalować z 10 kompilatorów, i innych bzdet..

Ja potrzebuję tylko mnożenie i dzielenie, a może i samo mnożenie wystarczy, bo dzielenie sobie sam łatwo zrobię za pomocą mnożeń.

1
exp napisał(a):
nalik napisał(a):

Boost::multiprecision jako implementacji może używać gmp. https://www.boost.org/doc/libs/1_67_0/libs/multiprecision/doc/html/index.html

Co do dostarczenia Ci plików lib, bez jaj chłopie, jesteś programistą czy uczniakiem? Skompiluj sobie.

Po co mi takie złom - rozwalony w setkach plików przeróżnego typu?
Musiałbym instalować z 10 kompilatorów, i innych bzdet..

Ja potrzebuję tylko mnożenie i dzielenie, a może i samo mnożenie wystarczy, bo dzielenie sobie sam łatwo zrobię za pomocą mnożeń.

Złom to chyba tworzysz Ty, gdyż jak widać masz problemy ze skonfigurowaniem jednej czy dwóch bibliotek : ).

0

Wydaje mi się, że temat został wyczerpany - aby zakończyć dalszy trolling OPa, zamykam wątek.

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