Szukam biblioteki do wielkich liczb w C++

Szukam biblioteki do wielkich liczb w C++
Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

Witam wynajmę kogoś kto zrobi mi bibliotekę w c++. Chodzi o big int. Chciałbym żeby ktoś napisał bibliotekę za pomocą której bez żadnych problemów zadeklaruje sobie w c++ Big_int liczbę o nieskończonej długości którą ograniczy ram :D(zaczerpując z jakiejś szybkiej biblioteki która przelicza jak najszybciej). chciałbym żeby można było dodawać odejmować z innymi typami czyli generalnie arytmetyka (=,-,*,/,%) i konwersją typów plus skróty np x+=y; i np x++;. Dalej żeby Big_int działało tak samo jak zwykły int w kwestii logiki <,>,==,!=,!.Dalej żeby normalnie można było przydzielić pamięć dynamicznie new... i potem delete... żeby ta pamięć się zwalniała z ramu. Co jeszcze... żeby można zrobić tabelkę z tej zmiennej znowu tak jak ze zwykłą zmienną. I żeby działało plik txt >>Big_int i plik txt<<Big_int. jak będę wstawiał Big_int do pętli żeby pamięć dziwnie nie puchła. poza tym z dodatkowych spraw chyba funkcja żebym potem nie żałował ;) sqrt(x); pierwiastek kwadratowy całkowity domyślnie a z parametrem może być dowolnego stopnia. wszystko to na linuksa korzystam z Ubuntu z terminala... g++. żebym do kompilacji nie musiał wypisywać nie wiadomo czego tylko g++ plik.txt a w inkcludach jeden żeby był góra dwa :D
w C++ wszystko się da jak się ktoś zna. Ile to by kosztowało?

edytowany 1x, ostatnio: kq
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 24 godziny
  • Lokalizacja:Szczecin
0

A dlaczego nie możesz użyć gotowej?


Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

można ale jak? zawsze coś niedziała

Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

o to zapłacę jak ktoś mnie nauczy :D wyjdzie taniej i szybciej

several
  • Rejestracja:ponad 15 lat
  • Ostatnio:3 minuty
1

Zawsze? Ja jednak obstawiałbym, że GNU MP będzie działać. Biblioteka napisana w C, ale jestem przekonany, że kilka wrapperów C++ się znajdzie.


Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

ja używam c++ do matematycznych obliczeń wiem co nie co o podstawach c++ więc nie ogarne tego sam

0

Ile płacisz janusz?

kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 24 godziny
  • Lokalizacja:Szczecin
1

Użyj Boost.Multiprecision i nie będziesz musiał nawet bawić w pisanie wrapperów.
https://wandbox.org/permlink/xE8cBDBDLFF3xKkX


Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

słyszałem o bibliotece Boost chciałem książkę kupić ale za skomplikowana dla mnie da się to przerobić żeby normalnie się deklarowało jak zwykłą zmienną?

Pyxis
,,,,,,,, podsyłam trochę przecinków. Zastanawiam się, czy Python nie rozwiązałby wszystkich Twoich problemów.
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 24 godziny
  • Lokalizacja:Szczecin
1

A co jest niezwykłego w poniższym? Nic takiego nie widzę, więc musisz mi wytłumaczyć.

Kopiuj
bm::cpp_int factorial(int n, bm::cpp_int total = 1)
{
    return n <= 1 ? total : factorial(n - 1, total * n);
}

Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

jakaś funkcja która co zwraca?

kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 24 godziny
  • Lokalizacja:Szczecin
1

Mam wrażenie że nie chce ci się odpalić googla żeby sprawdzić nawet najtrywialniejszych problemów. Factorial to silnia, ale to nie ma znaczenia, bo to tylko przykład. cpp_int to typ z Boost.Multiprecision, implementujący big integery.


Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

mam książkę szkoła programowania język C++ Stephen Prata wydanie V. I umiem wszystko szczegółowo od początku do rozdziału chyba 9 co są przestrzenie nazw i to mi starcza do takich swoich programów... nie programowałem nie wiadomo jak ani też C nie znam

kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 24 godziny
  • Lokalizacja:Szczecin
0

Świetnie. Prosiłeś o bibliotekę w C++, dostałeś bibliotekę w C++, zapewniającą przeładowania operatorów itd. W czym jest problem?


Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

nie wiem jak z niej korzystać i dodać do swojego programu żeby mógł łatwo deklarować takie duże zmienne

YooSy
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 5 lat
  • Postów:472
0

To poczytaj trochę na ten temat. Z każdą napisaną przez kogoś biblioteką będziesz musiał jakoś sobie poradzić.


Nie pisz na priv. Zadaj dobre pytanie na forum.
Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

chciałbym mieć tak żeby do moich programów dodać includ ... zamienić long int na big_int i zwiększyć pętle z 1000 przejść na np 1000000000 i żeby liczby były wielkie

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:minuta
  • Postów:6628
1

Ktoś już zaproponował Pythona, ale tylko w komentarzu, więc pytający mógł to przeoczyć... I uważam, że Python rozwiąże Twoje wszystkie problemy... No może nie wszystkie, ale te z big intem owszem :D

Zobacz:
https://ideone.com/WoO3Cr


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 24 godziny
  • Lokalizacja:Szczecin
0
Adam Szczepański napisał(a):

chciałbym mieć tak żeby do moich programów dodać includ ... zamienić long int na big_int i zwiększyć pętle z 1000 przejść na np 1000000000 i żeby liczby były wielkie

Zadałeś sobie trud przeczytać to co napisałem? Przecież dokładne to dostałeś...


Spine
czas przetestować dawno nie używaną funkcję - lock tematu :D
kq
Raczej "autor złośliwie i uporczywie nie chce pomocy" :​/
Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

że z czym co napisałeś może strona mi się nie odświeżyła...

naprawde Boost jest takie proste no muszę poczytać

edytowany 1x, ostatnio: kq
Spine
Gościu, wiesz, że możesz edytować swojego posta, a nie pisać jednego pod drugim? I to jeszcze piszesz tak niedbale...
Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

no już wiem kolega mi jeden podpowiedział no to tak jakby ktoś chciał wiedzieć...
sudo apt-get update
sudo apt-get install libgmpxxv4-4
i
#include<gmpxx.h>
#include<gmp.h>
kompilacja
g++ -Wall -std=c++11 plik.cpp -lgmpxx -lgmp
deklaracja
mpz_class a;
a="54234523452345234524352345243";
i wsztstko
na razie testuje
kolega zarobił 100zł :P

kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 24 godziny
  • Lokalizacja:Szczecin
0

Dostałeś tu rozwiązanie za darmo i zapłaciłeś za mniej wygodne? Zaczynam uważać, że to co niektórzy piszą o piekarzach ma sens.


Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

po prostu odezwał się kolega który to dla mnie ogarniał i powiedział działa to tak i tak a tego bost nie zdążyłem ogarnąć tego cpp_int z Boost.Multiprecision

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:minuta
  • Postów:6628
0

Ja nie ogarniam tego co piszesz... Dobrze, że znaleźliście wspólny język...


🕹️⌨️🖥️🖱️🎮
Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

czego nie ogarniasz? umiem C++ do podstaw szczegółowo nie znam się na zaawansowanym programowaniu nie jest mi też potrzebne do ciągów czy takiej tam matematyki mojej. :p
kolega powiedział mi co doinstalować jaki includ dodać jak deklarować i jak kompilować. działa nie ma listy błędów które trzeba ogarniać

przepraszam mam dyslekcje dobrze że edytor podkreśla ortografię "... umiem C++ do podstaw szczegółowo, nie znam się na zaawansowanym programowaniu, nie jest mi też potrzebne do ciągów czy takiej tam matematyki mojej ..." tak lepiej :D

edytowany 1x, ostatnio: kq
YooSy
@Pyxis: ,,,,,,,, podsyłam trochę przecinków. - dołączam się. Ciężko połapać się w tych zadaniach.
YooSy
Czyta się zdecydowanie łatwiej.
Adam Szczepański
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:48
0

no to teraz jakby ktoś chciał się podzielić wiedzą i używa tego boosta to jak to zainstalować, kompilować, deklarować i co dodać w includach mogę też z chęcią potestować

YooSy
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 5 lat
  • Postów:472
0

Nie pisz na priv. Zadaj dobre pytanie na forum.
Bartosz Wójcik
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 4 lata
  • Postów:439
0

Polecam GMP lub jeśli traktujesz to poważnie to MIRACL.

RE
  • Rejestracja:ponad 18 lat
  • Ostatnio:37 minut
1

ja się tak zastanawiam jak ty się jakąś matmą zajmujesz to czemu nie używasz narzedzi dla tego? Mathematica, matlab, mathcad czy co tam innego jest(z darmowych scilab, octave czy maxima). Z języków to przecież python.


We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:minuta
  • Postów:6628
0

Ma dysleksję, to i tak cud, że w C++ coś robi... chociaż z trudniejszymi rzeczami jak widać, potrzebuje pomocy...


🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
kq
Wolałbym aby ludzie nie postowali postów które mogą być obraźliwe w dziale technicznym :​P
Spine
Oki, filmik i tak średnio pasuje, to usuwam ;)
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)