Kalkulator dużych liczb

Obliczenia na liczbach całkowitych poza limitem float: arytmetyka, potęgi, pierwiastki, silnie, NWD, NWW i czynniki pierwsze. 100! pokazuje dokładnie wszystkie 158 cyfr.

01 kalkulator

Wyniki aktualizują się podczas wpisywania. Ctrl/Cmd+Enter kopiuje główny wynik.

Wynik

    Pokaż rozwiązanie

      Kalkulator dużych liczb wykonuje dokładną arytmetykę całkowitą na wartościach, których zwykłe kalkulatory zmiennoprzecinkowe nie pomieszczą. Dodawanie, odejmowanie, mnożenie, dzielenie, modulo, potęgi, pierwiastki całkowite, silnie, NWD, NWW i próbna faktoryzacja zwracają pełne ciągi cyfr zamiast przybliżeń naukowych. Liczba cyfr i opcjonalne ustawienia precyzji towarzyszą każdemu wynikowi, więc rozmiar odpowiedzi widać od razu.

      Wszystkie obliczenia działają w przeglądarce. Nic z tego, co wpiszesz, nie trafia na serwer.

      Obliczaj liczby poza standardową precyzją

      Concept diagram: Wejścia leads to with numbers beyond standard… leads to WynikWejściawith numbers beyondstandard…Wynik
      Obliczaj liczby poza standardową precyzją.

      Liczby całkowite o dowolnej precyzji rosną tak daleko, jak pozwala pamięć. Wpisz operandy jako ciągi cyfr dziesiętnych lub z prefiksami 0x / 0b, gdy wygodny jest hex lub binarny, i wybierz operację. Główny wynik to dokładna odpowiedź; pole pomocnicze podaje liczbę cyfr.

      Zwykłe kalkulatory tracą dokładność na długo przed tym, jak liczą się kryptografia i kombinatoryka. Silnie, duże potęgi i iloczyny wielu składników przepełniają floaty IEEE w nieskończoność albo zaokrąglają niskie cyfry. To narzędzie zachowuje każdą cyfrę wyników całkowitych, o to chodzi na tej stronie.

      Zrozum, gdzie zwykłe kalkulatory tracą dokładność

      Concept diagram: Wejścia leads to where standard calculators lose… leads to WynikWejściawhere standardcalculators lose…Wynik
      Zrozum, gdzie zwykłe kalkulatory tracą dokładność.

      Podwójna precyzja IEEE-754 ma około 15 do 17 cyfr dziesiętnych znaczących. Liczb całkowitych powyżej 2⁵³ (9,007,199,254,740,992) nie da się dokładnie zapisać w double; dalej nieparzyste liczby całkowite zaokrąglają się do najbliższych parzystych. Kalkulatory kieszonkowe i komórki arkuszy na double więc cicho kłamią na dużych liczbach całkowitych.

      2^53 = 9007199254740992   ostatnia kolejna liczba całkowita dokładnie w double
      2^53 + 1                  nie da się odróżnić od 2^53 w double

      Mnożenie i dzielenie zmiennoprzecinkowe wprowadzają też błąd zaokrąglenia na wynikach ułamkowych. Kalkulator dużych liczb unika tej klasy błędów w operacjach całkowitych dzięki arytmetyce big-integer. Pierwiastki niecałkowite i dzielenia nadal wymagają ustawienia precyzji, bo te wyniki z natury nie są skończonymi ciągami cyfr.

      Wykonuj arytmetykę na bardzo dużych liczbach całkowitych

      Concept diagram: Wejścia leads to Run arithmetic on very large… leads to WynikWejściaRun arithmetic on verylarge…Wynik
      Wykonuj arytmetykę na bardzo dużych liczbach całkowitych.

      Dodawanie, odejmowanie, mnożenie, dzielenie i modulo przyjmują operandy o setkach lub tysiącach cyfr. Dzielenie zwraca iloraz całkowity; modulo zwraca resztę według zwykłych reguł znaku silnika. Mnożenie dwóch 100-cyfrowych liczb daje iloczyn do 200 cyfr bez ukrywania środka notacją naukową.

      Pożyczanie i przenoszenie stosują te same reguły co ręczna arytmetyka, rozciągnięte na tablice cyfr. Wydajność pozostaje interaktywna dla rozmiarów typowych w zadaniach domowych i na konkursach programistycznych; patologiczne wejścia z dziesiątkami tysięcy cyfr mogą na chwilę zatrzymać kartę, gdy przeglądarka pracuje. Anuluj i spróbuj mniejszego przypadku, jeśli strona przestaje reagować.

      Obliczaj potęgi, pierwiastki i silnie

      Concept diagram: Wejścia leads to powers, roots and factorials leads to WynikWejściapowers, roots andfactorialsWynik
      Obliczaj potęgi, pierwiastki i silnie.

      Potęgi liczą base^exponent dla nieujemnych wykładników całkowitych z dokładnym wynikiem całkowitym. Całkowite pierwiastki kwadratowe zwracają podłogę prawdziwego pierwiastka i mogą pokazać resztę. Silnia n! mnoży każdą liczbę całkowitą od 1 do n i zwraca pełny ciąg cyfr; dla 100! ma on 158 cyfr, daleko poza tym, co double przechowa dokładnie.

      100! ma 158 cyfr. Wiodące cyfry to 9332621544…, a pełny ciąg jest za długi na zwykłe pisanie ręczne, dlatego istnieje kalkulator. Sama liczba cyfr odpowiada na wiele sprawdzeń konkursowych: jeśli pytanie brzmi, czy 100! mieści się w rejestrze 256-bitowym, 158 cyfr dziesiętnych wystarczy do decyzji (256 bitów mieści co najwyżej 78 cyfr dziesiętnych).

      nn! (forma skrócona)Cyfry
      103,628,8007
      202,432,902,008,176,640,00019
      50(długa)65
      100(długa)158

      Ujemne silnie są niezdefiniowane dla liczb całkowitych. Bardzo duże n w końcu wyczerpie pamięć przeglądarki; narzędzie zgłasza błąd zamiast zwracać obciętą wartość.

      Znajdź największy wspólny dzielnik i najmniejszą wspólną wielokrotność

      Concept diagram: Wejścia leads to greatest common divisor and lowest… leads to WynikWejściagreatest common divisorand lowest…Wynik
      Znajdź największy wspólny dzielnik i najmniejszą wspólną wielokrotność.

      NWD używa algorytmu Euklidesa: zastąp większą liczbę resztą z dzielenia, aż reszta będzie zerem. Ostatnia niezerowa reszta to NWD. NWW wynika z LCM(a, b) = |a × b| / GCD(a, b) z mnożeniem big-integer, żeby iloczyn nie przepełnił.

      Liczb względnie pierwszych ma NWD równy 1. Skracanie ułamka lub proporcji obrazu to dzielenie obu składników przez NWD; Kalkulator proporcji obrazu ma ten interfejs, a ta strona udostępnia surowe operacje NWD i NWW dla dowolnych liczb całkowitych. Wpisanie 1920 i 1080 daje NWD 120, ten sam czynnik, który redukuje klatkę Full HD do 16:9.

      Znajdź czynniki pierwsze dużej liczby

      Concept diagram: Wejścia leads to prime factors of a large number leads to WynikWejściaprime factors of alarge numberWynik
      Znajdź czynniki pierwsze dużej liczby.

      Dzielenie próbne zdejmuje małe czynniki pierwsze, potem idzie w górę względem pozostałego współczynnika, aż ten będzie pierwszy albo trafi limit wyszukiwania. Półproste z dwóch dużych liczb pierwszych to trudny przypadek: dzielenie próbne nie skończy się interaktywnie w przeglądarce, a strona podaje ten limit zamiast milczeć i wisieć.

      WejścieCzynniki
      122² × 3
      9797 (pierwsza)
      1,0017 × 11 × 13

      Kalkulator uczciwie podaje limity. Liczby z małymi czynnikami faktoryzują się szybko. Liczby zbudowane jak moduły RSA nie skończą się w czasie interaktywnym i to jest oczekiwane: kryptografia polega na tej trudności. Do nauki i zadań konkursowych ze umiarkowanymi liczbami złożonymi widok faktoryzacji wystarcza.

      Ustaw precyzję dla wyników niedokładnych

      Concept diagram: Wejścia leads to precision for non-exact results leads to WynikWejściaprecision for non-exactresultsWynik
      Ustaw precyzję dla wyników niedokładnych.

      Pierwiastki kwadratowe z liczb niebędących kwadratami perfekcyjnymi i dzielenia, które nie dają liczb całkowitych, wymagają ustawienia precyzji: liczby cyfr znaczących przed zaokrągleniem. Notacja naukowa jest dostępna dla bardzo dużych lub bardzo małych wartości, gdy pełny ciąg cyfr jest niewygodny.

      Operacje tylko całkowite ignorują kontrolę precyzji, bo dokładna odpowiedź jest skończona. Mieszanie trybów to częsty błąd: ustawienie precyzji na 10 nie obcina 100!; silnia nadal zwraca wszystkie 158 cyfr. Precyzja dotyczy tylko operacji przybliżonych.

      Używaj dużych liczb w praktyce

      Concept diagram: Wejścia leads to big numbers in practice leads to WynikWejściabig numbers in practiceWynik
      Używaj dużych liczb w praktyce.

      Kryptografia mówi o rozmiarach kluczy w bitach: moduł RSA 2048-bitowy to w przybliżeniu 617-cyfrowa liczba dziesiętna. Kombinatoryka produkuje silnie i współczynniki dwumianowe, które natychmiast przekraczają rejestry 64-bitowe. Zadania programistyczne często proszą o odpowiedź modulo liczby pierwszej, co nadal wymaga dużych iloczynów pośrednich przed redukcją.

      Gdy język oferuje wbudowany typ big-integer (Python int, Java BigInteger, JavaScript BigInt), ten kalkulator to notatnik do sprawdzania tych programów. Gdy język tkwi na double, kalkulator jest odniesieniem, jaka powinna być dokładna wartość.

      Często zadawane pytania

      Dlaczego zwykły kalkulator zawodzi na dużych liczbach całkowitych?

      Double trzyma około 15 do 17 cyfr znaczących i nie może reprezentować każdej liczby całkowitej powyżej 2⁵³. Duże liczby całkowite są zaokrąglane, więc niskie cyfry stają się błędne, choć wyświetlacz nadal wygląda precyzyjnie.

      Ile cyfr ma 100!?

      100! ma 158 cyfr. Kalkulator dużych liczb zwraca pełną liczbę całkowitą i podaje tę liczbę w polu pomocniczym, zgodnie z fixture silnika używanym w testach.

      Co to jest dowolna precyzja?

      Dowolna precyzja oznacza, że liczba cyfr rośnie według potrzeby zamiast mieścić się w stałym rejestrze, np. 64 bitach. Wyniki pozostają dokładne dla operacji całkowitych, dopóki nie zabraknie pamięci.

      Jak liczy się NWD?

      Algorytm Euklidesa wielokrotnie zastępuje większą liczbę resztą z dzielenia przez mniejszą, aż reszta będzie zerem. Ostatnia niezerowa reszta to NWD. NWW wynika potem z iloczynu podzielonego przez NWD.

      Czy kalkulator rozłoży na czynniki dowolną liczbę?

      Nie. Dzielenie próbne radzi sobie z liczbami o małych czynnikach pierwszych. Półproste z dwoma dużymi czynnikami pierwszymi, jak w RSA, nie rozłożą się w czasie interaktywnym w przeglądarce, a strona tego nie udaje.

      Czy potęgi zawsze zwracają dokładne wyniki?

      Całkowite potęgi z nieujemnymi wykładnikami zwracają dokładne liczby całkowite. Wykładniki ułamkowe i pierwiastki niecałkowite używają ustawienia precyzji i mogą zaokrąglać. Ujemne wykładniki dają odwrotności, które zwykle nie są liczbami całkowitymi.

      Jakie formaty wejścia są akceptowane?

      Domyślnie ciągi cyfr dziesiętnych. Prefiksy 0x i 0b pozwalają na wejście hex i binarne dla tych samych operacji. Przecinki jako separatory tysięcy nie są wymagane i mogą być odrzucone w zależności od parsera pola.

      Czy obliczenia trafiają na serwer?

      Nie. Praca big-integer działa w przeglądarce. Duże wartości pośrednie nie opuszczają urządzenia, co ma znaczenie, gdy operandy pochodzą z kluczy do zadań lub lokalnych danych eksperymentalnych.

      Jaki to ma związek z JavaScript BigInt?

      Silnik używa arytmetyki big-integer w tym samym duchu co BigInt: dokładne liczby całkowite, bez zaokrąglania zmiennoprzecinkowego. Strona to interfejs nad tymi operacjami z liczbą cyfr, silniami i pomocnikami faktoryzacji.

      Kiedy podnieść precyzję?

      Podnieś precyzję dla pierwiastków i dzielenia niedokładnego, gdy potrzebujesz więcej cyfr znaczących do porównania lub wydruku. Całkowita silnia, NWD i arytmetyka modularna nie zużywają tego ustawienia.

      Podsumowanie

      Kalkulator dużych liczb zachowuje dokładne wyniki całkowite tam, gdzie double traci cyfry po około 15 cyfrach znaczących i po 2⁵³. Arytmetyka, potęgi, silnie, NWD, NWW i próbna faktoryzacja działają lokalnie, a 100! jest raportowane jako 158-cyfrowa liczba całkowita. Kontrola precyzji dotyczy tylko pierwiastków niecałkowitych i dzielenia. Faktoryzacja w skali kryptograficznej jest uznana za poza zakresem interaktywnego dzielenia próbnego.