Калькулятор больших чисел
Выполняет точные вычисления с очень большими числами: сложение, вычитание, умножение, деление, степени, факториалы, квадратные корни, НОД и НОК — до 1000 цифр в каждом числе и без округлений с плавающей запятой. Выберите операцию, введите два числа и получите все цифры.
Точная арифметика с очень большими числами
Формула больших чисел
Обозначения:
- \(V\) — все цифры числа, записанные одним точным целым числом BigInt (до 1000 цифр)
- \(S\) — десятичный масштаб: \(x = V/10^S\), поэтому 2,5 хранится как 25/10, а 0,125 — как 125/1000
- \(s\) — общий масштаб, который выравнивает оба операнда для сложения, вычитания, остатка, НОД и НОК
Поскольку каждое введённое число представляется целым числом с масштабом, все десять операций выполняются исключительно в точной целочисленной арифметике, а запятая возвращается на место только при выводе. Умножение, сложение, возведение в степень, факториалы, НОД и НОК всегда точны; деление и квадратный корень округляются по правилу «половина — вверх» до указанного знака после запятой, и поле результата честно сообщает об этом.
Большие числа — пример вычисления
Пример: значения по умолчанию при операции a × b (умножение): a = 123456789012345678901234567890 и b = 987654321098765432109876543210.
\[ 123456789012345678901234567890 \times 987654321098765432109876543210 = 121\,932\,631\,137\,021\,795\,226\,185\,032\,733\,622\,923\,332\,237\,463\,801\,111\,263\,526\,900 \]
Результат: 121932631137021795226185032733622923332237463801111263526900 — точное произведение из 60 цифр, которое выводится как 60 значащих цифр и в экспоненциальной записи равно 1,2193263114 × 1059. Калькулятор с плавающей запятой сохранил бы лишь первые 15–17 из этих цифр.
Как пользоваться калькулятором больших чисел
- Операция — выберите одну из десяти операций в выпадающем списке: сложение, вычитание, умножение, деление, остаток (mod), возведение в степень, квадратный корень, факториал, НОД или НОК.
- Первое число (a) — введите до 1000 цифр: целое число, десятичную дробь с точкой или запятой либо значение в экспоненциальной записи, например
3.2e50или-1.7E-30. Для √x это x; для n! это n. - Второе число (b) — второй операнд в том же формате. Для x ^ y это должно быть целое число от 0 до 10 000; для √x и n! поле скрыто, поскольку оно не используется.
- Знаков после запятой (÷ и √) — укажите, сколько знаков после запятой должно быть в частном или корне (от 0 до 10 000). Это поле появляется только для двух указанных операций.
- Ознакомьтесь с результатами: полное поле Результат с кнопкой копирования, Значащих цифр в результате, Экспоненциальная запись с 11 значащими цифрами, вердикт Точно или округлено? и примечание Как был вычислен результат.
Операции вкратце
| Операция | Второе число (b) | Знаков после запятой | Результат |
|---|---|---|---|
| a + b, a − b, a × b | используется | не используется | всегда точный |
| a ÷ b (деление) | используется, не может быть 0 | 0–10 000 | точный, если возможно; иначе округляется по правилу «половина — вверх» с пометкой об округлении |
| a mod b (остаток) | используется, не может быть 0 | не используется | точный; знак совпадает со знаком первого числа |
| x ^ y (степень) | целое число 0–10 000 | не используется | точный (x0 = 1, а 00 = 1 по принятому соглашению) |
| √x (квадратный корень) | скрыто | 0–10 000 | точный для полных квадратов, иначе округление по правилу «половина — вверх» |
| n! (факториал) | скрыто | не используется | точный, для n = 0–5 000 |
| НОД(a, b), НОК(a, b) | используется | не используется | точный; десятичные дроби допускаются |
Зачем нужна точная арифметика больших чисел
Обычные калькуляторы и электронные таблицы хранят числа как 64-битные значения с плавающей запятой IEEE 754, которые удерживают лишь около 15–17 значащих десятичных цифр. Всё, что дальше, незаметно округляется: на большинстве систем 1e20 + 1 даёт ровно 1e20, а из 60-значного произведения верными остаются максимум 17 цифр. Округление не видно на экране, но оно реально существует и накапливается в каждом последующем вычислении — а это серьёзная проблема, когда нужно проверить большое произведение, подсчитать число сочетаний или сверить алгоритм цифру за цифрой.
Этот калькулятор вообще не использует плавающую запятую. Каждое введённое число представляется одним целым числом BigInt \(V\) с десятичным масштабом \(S\), и все операции — сложение, умножение, возведение в степень методом повторного возведения в квадрат, извлечение квадратного корня методом ньютоновских итераций, алгоритм Евклида для НОД, пошаговое вычисление факториала — выполняются над этими целыми без ограничения в 15–17 цифр. Округление возможно только в делении и квадратном корне на указанном знаке, и поле Точно или округлено? прямо сообщает, какой из случаев у вас, поэтому вердикт «Точно» означает, что верна каждая показанная цифра.
Остальные поля результата помогают работать с длинными ответами: Значащих цифр в результате показывает точную длину, а Экспоненциальная запись — порядок величины с 11 значащими цифрами; это удобно для сравнения чисел, а дальнейшее преобразование легко выполнить в конвертере экспоненциальной записи. Типичные применения — проверка больших умножений вручную, комбинаторные расчёты, проверка домашних заданий с огромными числами и любые задачи, где инструмент двойной точности молча округлил бы ваш ответ.
Ограничения, соглашения и практические советы
- Размер ввода: каждое число может содержать до 1000 цифр до экспоненты, а сама экспонента — до ±10 000. Результаты длиннее 1 000 000 цифр отклоняются с предупреждением, а не подвешивают страницу.
- Степени и факториалы: для x ^ y показатель должен быть целым числом от 0 до 10 000 (отрицательные степени дают бесконечные дроби и отклоняются); n! принимает целые числа от 0 до 5 000. Для небольших n пошаговое произведение покажет отдельный калькулятор факториала.
- Деление и корни: a ÷ b округляется по правилу «половина — вверх» до указанного числа знаков, и калькулятор сообщает, получилось ли деление точным. √x сначала проверяет, не является ли x квадратом конечной десятичной дроби; если нет, корень округляется и помечается соответствующим образом.
- Знак остатка: a mod b принимает знак первого числа, как оператор % в JavaScript и C. Если нужен всегда неотрицательный (евклидов) остаток, скорректируйте результат: прибавьте |b| к отрицательному значению.
- НОД и НОК для десятичных дробей: оба операнда сначала приводятся к общей степени десяти, поэтому НОД(2,5; 1,5) = 0,5 вычисляется естественным образом. Для обычных целых чисел подойдёт и калькулятор НОД.
- Моду"лярная арифметика: если вам нужно только x ^ y mod m, калькулятор модульного возведения в степень избавит от построения огромной степени как таковой.
- Форматирование: используйте точку или запятую как десятичный разделитель, но никогда не оба в одном числе; знаки минус и пробелы очищаются автоматически. В результатах используется ASCII-минус, чтобы они корректно вставлялись в другие инструменты, и у каждого ответа есть кнопка Копировать результат.
Часто задаваемые вопросы
Как умножать большие числа вручную?
Разбейте каждое число на группы по 3–4 цифры справа, перемножьте каждую группу первого числа с каждой группой второго, отслеживайте разряд каждой пары (группа \(i\) одного на группу \(j\) другого даёт вклад в позицию \(i+j\)) и сложите промежуточные произведения столбиком с переносами. Калькулятор — самый быстрый способ проверить результат: введите оба числа, выберите a × b, и все цифры точного произведения появятся вместе с кнопкой копирования.
Почему обычный калькулятор даёт неверный ответ для больших чисел?
Обычные калькуляторы и электронные таблицы используют 64-битную плавающую запятую IEEE 754, которая хранит лишь около 15–17 значащих десятичных цифр — всё сверх того молча округляется. Например, на большинстве систем 1e20 + 1 даёт ровно 1e20. На экране этого не видно, но погрешность накапливается в дальнейших шагах. Этот калькулятор вместо этого использует точные целые числа BigInt, поэтому 60-значное произведение, огромный факториал или длинная степень выходят верными цифра в цифру.
Какое самое большое число может обработать этот калькулятор?
Каждое введённое число может содержать до 1000 цифр до экспоненты, а экспонента допускается от −10 000 до +10 000. Так что максимальное принимаемое значение близко к 1e11000. Сам результат отклоняется, если он превысил бы 1 000 000 цифр — например, при слишком быстро растущей степени. Вместо зависания калькулятор показывает предупреждение, поэтому уменьшите числа или снизьте показатель.
Работает ли он с десятичными дробями вроде 2,5 и 0,125, а не только с целыми числами?
Да. Каждое введённое число внутри представляется точным целым числом с масштабом, например 2,5 = 25/10. Сложение, вычитание, умножение, возведение в степень, НОД, НОК и остаток принимают десятичные дроби и экспоненциальную запись вида 3.2e50. Даже НОД и НОК работают с десятичными дробями: НОД(2,5; 1,5) = 0,5. Факториал и показатель степени требуют целых чисел, поскольку нецелые значения дают бесконечные дроби, которые невозможно записать точно.
Сколько знаков после запятой могут показать деление и квадратный корень?
И для a ÷ b, и для √x можно запросить от 0 до 10 000 знаков после запятой, причём калькулятор сначала проверяет, не завершается ли точный ответ. Если 1 ÷ 8 даёт 0,125, результат помечается как точный; если частное или корень продолжаются бесконечно, как в случае 1 ÷ 3 или √2, ответ округляется по правилу «половина — вверх» на указанном знаке, и поле «Точно или округлено?» сообщает об этом — так вы всегда знаете, была ли округлена последняя цифра.
Каков знак остатка a mod b?
Остаток принимает знак первого числа, точно как оператор % в JavaScript и C: −7 mod 3 = −1, тогда как 7 mod −3 = 1. Если нужен всегда неотрицательный (евклидов) остаток, принятый в теории чисел и модулярной арифметике, прибавьте |b| к отрицательному результату — для −7 mod 3 это даст −1 + 3 = 2.