Насколько быстро растёт факториал
Рост факториала быстро обгоняет показательный рост, что видно из таблицы точных и приближённых значений ниже.
| n | n! | Порядок величины |
|---|---|---|
| 0 | 1 | 1 |
| 5 | 120 | 1,2 × 10² |
| 10 | 3 628 800 | 3,6 × 10⁶ |
| 15 | 1 307 674 368 000 | 1,3 × 10¹² |
| 18 | 6 402 373 705 728 000 | 6,4 × 10¹⁵ |
| 20 | 2 432 902 008 176 640 000 | 2,4 × 10¹⁸ |
- 18! (≈6,40 × 10¹⁵) — наибольший факториал, не превышающий предел безопасных целых, поскольку значение Number.MAX_SAFE_INTEGER в JavaScript равно 2⁵³ − 1 ≈ 9,007 × 10¹⁵; поэтому калькулятор показывает точное значение только до n = 18. За этим пределом факториалы остаются точно представимыми числами двойной точности вплоть до 22!, так как каждый из них содержит множество множителей 2, а 23! — первый, который округляется.
- Для n от 19 до 170 выводится только приближение в научной записи (и ln(n!)), так как точное целое значение потребовало бы большей точности, чем даёт стандартная арифметика с плавающей точкой без библиотеки длинной арифметики.
- При n больше 170 значение n! превосходит наибольшее число, представимое в стандартной двойной точности (примерно 1,8 × 10³⁰⁸), и переполняется до бесконечности, поэтому калькулятор ограничивает n значением 170.
Что такое факториал?
Факториал неотрицательного целого числа n, обозначаемый n!, определяется как произведение всех натуральных чисел от 1 до n: n! = n × (n − 1) × (n − 2) × ... × 2 × 1. Например, 5! = 5 × 4 × 3 × 2 × 1 = 120. По определению 0! = 1 (пустое произведение, равное мультипликативной единице) — это стандартное соглашение, принятое во всей комбинаторике.
Факториалы растут чрезвычайно быстро — намного быстрее показательных функций от n. 10! = 3 628 800, а 20! уже превышает 2,4 квинтиллиона (2,43 × 10¹⁸) — это больше числа секунд, прошедших с Большого взрыва. Именно из-за такого взрывного роста факториалы больших n обычно записывают в научной форме, а точные целые значения начиная с некоторого момента становится непрактично выводить.
Факториалы лежат в основе комбинаторики: они подсчитывают число способов упорядочить n различных объектов (перестановки) и стоят в знаменателях формулы биномиального коэффициента, которой считают неупорядоченные выборки (сочетания). Они встречаются также в теории вероятностей, математическом анализе (коэффициенты рядов Тейлора) и во множестве комбинаторных тождеств в замкнутой форме.
Как пользоваться калькулятором факториала
- Введите целое число n от 0 до 170 (170! близко к наибольшему факториалу, который стандартные числа с плавающей точкой двойной точности способны представить до переполнения в бесконечность).
- Посмотрите результат в научной записи — он выводится всегда, независимо от величины n.
- Для n ≤ 18 дополнительно выводится точное целое значение n!, поскольку большие факториалы выходят за пределы точно представимых целых чисел в арифметике двойной точности (2⁵³ ≈ 9,007 × 10¹⁵).
- Изучите натуральный логарифм n! (он удобен при работе с очень большими факториалами без переполнения) и количество нулей в конце десятичной записи n!.
Как вычисляются факториал, нули в конце и ln(n!)
Определяющее рекуррентное соотношение — n! = n × (n − 1)! с базовым случаем 0! = 1. Разбор примера: 5! = 5 × 4! = 5 × 4 × 3! = 5 × 4 × 3 × 2! = 5 × 4 × 3 × 2 × 1! = 5 × 4 × 3 × 2 × 1 × 0! = 120 × 1 = 120.
Для больших n натуральный логарифм ln(n!) вычисляется как сумма Σ ln(k) при k от 2 до n — это позволяет избежать переполнения, которое возникло бы при прямом перемножении. Научная запись получается из этой суммы через десятичный логарифм: log₁₀(n!) = ln(n!) ÷ ln(10), где целая часть даёт показатель степени, а дробная (после обратного преобразования 10^x) — мантиссу.
Количество нулей в конце n! равно тому, сколько раз 10 делит n! нацело. Поскольку 10 = 2 × 5, а множителей 2 в факториале всегда больше, чем множителей 5, задача сводится к подсчёту множителей 5 по формуле Лежандра: нулей в конце = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + ... Разбор примера для 10!: ⌊10/5⌋ = 2, ⌊10/25⌋ = 0, значит у 10! два нуля в конце — это подтверждается значением 10! = 3 628 800.
Типичные ошибки
- Забывать, что 0! = 1, а не 0: это стандартное математическое соглашение (пустое произведение равно 1), без которого комбинаторные формулы перестали бы работать в граничных случаях.
- Считать, что факториал можно вычислить точно для сколь угодно больших n в стандартной арифметике: начиная с n = 23 точные целые значения выходят за пределы того, что числа двойной точности представляют без округления.
- Путать n! (факториал) с nⁿ (n в степени n): факториал перемножает убывающую последовательность целых чисел до 1, а возведение в степень умножает n само на себя n раз; растут они по-разному и быстро расходятся (5! = 120 против 5⁵ = 3125).
- Вводить отрицательное или нецелое число: в этом элементарном смысле факториал определён только для неотрицательных целых (гамма-функция распространяет понятие на нецелые аргументы, но это отдельная, более сложная формула).
Часто задаваемые вопросы
Что такое факториал n?
Факториал n (n!) — это произведение всех натуральных чисел от 1 до n. Например, 5! = 5 × 4 × 3 × 2 × 1 = 120. По определению 0! = 1.
Почему 0! равен 1?
0! определён как 1 по математическому соглашению: это «пустое произведение» (произведение нуля множителей), которое по договорённости равно мультипликативной единице, то есть 1. Такое определение сохраняет согласованность формул перестановок и сочетаний в граничных случаях — например, существует ровно 1 способ расставить ноль объектов.
Насколько быстро растут факториалы?
Факториалы растут быстрее показательных функций от n. 10! составляет около 3,6 миллиона, а 20! уже превышает 2,4 × 10¹⁸ (2,4 квинтиллиона). Именно из-за такого сверхэкспоненциального роста факториалы записывают в научной форме уже при умеренных n и часто приводят как пример чрезвычайно быстрого роста в математике.
Сколько нулей в конце числа 100!?
По формуле Лежандра (сумма ⌊100/5ⁱ⌋) у 100! будет ⌊100/5⌋ + ⌊100/25⌋ = 20 + 4 = 24 нуля в конце. Нули в конце возникают из множителей 10 = 2 × 5, и, поскольку множителей 2 в факториале всегда больше, чем множителей 5, достаточно подсчитать только множители 5.
Какой наибольший факториал калькулятор может вычислить точно?
В стандартной арифметике двойной точности (её используют JavaScript и большинство калькуляторов) 18! — наибольший факториал, не превышающий предел безопасных целых, поскольку 18! ≈ 6,40 × 10¹⁵ меньше 2⁵³ − 1 ≈ 9,007 × 10¹⁵, а 19! его уже превосходит. За этим пределом факториалы остаются точно представимыми числами двойной точности вплоть до 22!, так как каждый из них содержит множество множителей 2; первым округляется 23!. Бо́льшие факториалы обычно показывают в научной записи.
Источники
- NIST Digital Library of Mathematical Functions (DLMF), §5.1 Gamma Function: Factorial Function. dlmf.nist.gov.
- Rosen KH. Discrete Mathematics and Its Applications. 8th ed. McGraw-Hill, 2018. (Factorials and combinatorics.)
- Graham RL, Knuth DE, Patashnik O. Concrete Mathematics. 2nd ed. Addison-Wesley, 1994. (Legendre's formula for factors in n!.)