Вычисление факториала числа
💻 Информатика · 8 класс
Что такое факториал
Факториал натурального числа n — это произведение всех натуральных чисел от 1 до n включительно. Обозначается восклицательным знаком: n!. Например, 5! = 1·2·3·4·5 = 120. По договорённости считают, что 0! = 1. Факториал очень быстро растёт с увеличением числа и часто встречается в задачах на перебор вариантов и комбинаторику — например, при подсчёте числа перестановок.
Вычисление факториала — классическая учебная задача на использование цикла. На ней удобно отработать важный приём: накопление произведения в отдельной переменной. Этот же приём пригодится во множестве других задач, поэтому разобраться в нём стоит внимательно.
Идея вычисления в цикле
Факториал удобно считать с помощью цикла со счётчиком. Заводят переменную-накопитель произведения, в которую сначала записывают единицу, а затем в цикле последовательно умножают её на 2, 3, ... n. Начальное значение именно 1, потому что умножение на единицу не меняет результат, а вот ноль обнулил бы всё произведение сразу.
Правило. Накопитель произведения всегда начинают с единицы. Если начать с нуля, итог получится нулевым независимо от остальных множителей.
Разобранный пример
# Питон, вычисление n!
n = 5
f = 1 # накопитель произведения
for i in range(1, n + 1):
f = f * i # умножаем на очередное число
print(f) # выведет 120Цикл повторяется для значений i от 1 до n, и на каждом шаге накопитель умножается на текущее значение счётчика. После завершения цикла в переменной f хранится готовый ответ.
Как меняется накопитель по шагам
Чтобы понять работу цикла, полезно проследить значение накопителя на каждом шаге. Такую таблицу называют трассировкой.
| Шаг (i) | Действие | Значение f |
|---|---|---|
| 1 | 1 · 1 | 1 |
| 2 | 1 · 2 | 2 |
| 3 | 2 · 3 | 6 |
| 4 | 6 · 4 | 24 |
| 5 | 24 · 5 | 120 |
Несколько значений факториала
Обратите внимание, насколько стремительно растёт факториал: уже при небольших числах значения становятся очень большими.
| n | n! |
|---|---|
| 0 | 1 |
| 3 | 6 |
| 5 | 120 |
| 7 | 5040 |
| 10 | 3628800 |
Связь с задачами на перебор
Факториал важен не только сам по себе. Он показывает, сколькими способами можно расставить по порядку n различных предметов. Например, четыре книги на полке можно расставить 4! = 24 способами. Поэтому факториал постоянно встречается в комбинаторике — разделе математики, который изучает количество вариантов в разных задачах перебора.
Частая ошибка. Забывают, что верхняя граница цикла должна включать само число n. В записи range(1, n + 1) прибавление единицы обязательно, иначе последний множитель пропадёт и ответ окажется неверным. Ещё одна ошибка — начать накопитель с нуля вместо единицы.Кратко о главном
- Факториал
n!— произведение всех чисел от1до n. - Его вычисляют в цикле через накопитель произведения.
- Накопитель начинают с единицы, иначе результат обнулится.
- По договорённости
0! = 1, а факториал растёт очень быстро. - Верхняя граница цикла должна включать само число n.