Калкулатор за факториел
Диапазон: 0 до 170 (ограничение на JavaScript)
📊 Резултат
📝 Изчисление стъпка по стъпка:
🎨 Визуално дърво на умножението
🎯 Пермутации и комбинации
🔄 Пермутации P(n,r)
💡 Редът има значение: ABC ≠ BAC
🎲 Комбинации C(n,r)
💡 Редът няма значение: ABC = BAC
📋 Референтна таблица за факториел
| n | n! | Цифри | Пример от реалния свят |
|---|
💡 Интересни факти
🃏 Разбъркване на карти
52! ≈ 8.07 × 10⁶⁷ възможни подредби. Ако всеки човек на Земята разбъркваше по едно тесте в секунда от Големия взрив насам, едва ли бихме докоснали повърхността!
🎭 Седалки в театър
10 души могат да бъдат настанени по 10! = 3,628,800 различни начина. Управлението на театралната логистика става експоненциално по-сложно!
📊 0! = 1
По дефиниция 0! = 1. Има точно един начин да подредите нула обекта: да не правите нищо! Това прави математическите формули последователни.
🚀 Скорост на растеж
Факториелът расте по-бързо от експоненциалната функция! Докато 2ⁿ удвоява, n! умножава по нарастващи стойности. 100! има 158 цифри!
Калкулатор за факториел - Изчислете n! със стъпки
🔢 Изчислете факториел (n!) за всяко число от 0 до 170. Вижте разбивка стъпка по стъпка, пермутации, комбинации и приложения от реалния свят.
Какво е факториел?
Факториелът на неотрицателно цяло число n, означаван с n!, е произведението на всички положителни цели числа, по-малки или равни на n. Той представя броя начини за подреждане на n различни обекта.
Формула за факториел
n! = n × (n-1) × (n-2) × ... × 3 × 2 × 1
- 0! = 1 (по дефиниция)
- 1! = 1
- n! = n × (n-1)! (рекурсивна дефиниция)
Примери за факториел
- 5! = 5 × 4 × 3 × 2 × 1 = 120
- 10! = 10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1 = 3,628,800
- 0! = 1 (специален случай)
- 20! = 2,432,902,008,176,640,000
Защо 0! = 1?
Има точно един начин да подредите нула обекта: празната подредба. Тази дефиниция гарантира, че математическите формули (особено в комбинаториката) работят правилно. Тя е и съвместима с рекурсивната формула: n! = n × (n-1)!, така 1! = 1 × 0! означава, че 0! трябва да е 1.
Пермутации
P(n,r) = n!/(n-r)!
Брой начини да подредите r обекта от n различни обекта, когато редът има значение.
- Пример: P(5,3) = 5!/(5-3)! = 120/2 = 60
- Употреба: Позиции на подиум в състезание (1-во, 2-ро, 3-то)
Комбинации
C(n,r) = n!/(r!(n-r)!)
Брой начини да изберете r обекта от n различни обекта, когато редът няма значение.
- Пример: C(5,3) = 5!/(3!×2!) = 120/(6×2) = 10
- Употреба: Лотарийни числа, избор на комисия
Крайни нули в n!
Крайните нули се получават от множители на 10 = 2 × 5. Тъй като факторите на 2 са повече от 5, трябва да броим само факторите на 5:
Нули = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + ...
- 10! има 2 крайни нули
- 25! има 6 крайни нули
- 100! има 24 крайни нули
Приложения в реалния свят
- Криптография: брой възможни ключове за криптиране
- Планиране: начини за подреждане на срещи, задачи, събития
- Генетика: възможни ДНК/протеинови последователности
- Вероятности: изчисляване на шансове в игри и лотарии
- Компютърни науки: анализ на сложността на алгоритми
- Производство: подредби на производствена линия
- Логистика: задачи за оптимизация на маршрути
Известни стойности на факториел
- 52! ≈ 8.07 × 10⁶⁷ (възможни разбърквания на тесте карти)
- 70! ≈ 1.2 × 10¹⁰⁰ (надвишава атомите във Вселената ≈ 10⁸⁰)
- 100! ≈ 9.3 × 10¹⁵⁷ (158 цифри!)
- 170! ≈ 7.3 × 10³⁰⁶ (максимум за JavaScript)
Приближение на Стирлинг
За големи n изчисляването на точния факториел е непрактично. Приближението на Стирлинг дава:
n! ≈ √(2πn) × (n/e)ⁿ
Това приближение става по-точно с увеличаване на n. За n = 10 грешката е < 1%.
Темп на растеж на факториела
Факториелът расте много по-бързо от експоненциални или полиномни функции:
- Полином: n² = 100 за n=10
- Експоненциална: 2ⁿ = 1,024 за n=10
- Факториел: n! = 3,628,800 за n=10
Двоен факториел
Двойният факториел (n!!) умножава през едно число:
- n!! = n × (n-2) × (n-4) × ... × 2 или 1
- 7!! = 7 × 5 × 3 × 1 = 105
- 8!! = 8 × 6 × 4 × 2 = 384
Субфакториел (дережанжмънти)
Субфакториелът !n брои пермутациите, при които нито един елемент не е на оригиналната си позиция:
!n = n! × (1/0! - 1/1! + 1/2! - 1/3! + ... + (-1)ⁿ/n!)
Пример: !3 = 2 (подредби на ABC без буква на оригиналната позиция: BCA, CAB)
Програмен пример
Итеративен подход:
function factorial(n) {
let result = 1;
for (let i = 2; i <= n; i++) {
result *= i;
}
return result;
}
Рекурсивен подход:
function factorial(n) {
if (n === 0 || n === 1) return 1;
return n * factorial(n - 1);
}
💡 Съвет: При изчисляване на пермутации или комбинации, съкращавайте общите множители преди смятането, за да избегнете overflow. Например за C(100,2) = 100!/(2!×98!) изчислете (100×99)/2 = 4,950 вместо да смятате огромните факториели поотделно!
Коментари (0)
Споделете мнението си — моля, бъдете учтиви и по темата.
Влезте, за да коментирате