Kalkulačka faktoriálu
Rozsah: 0 až 170 (limit JavaScriptu)
📊 Výsledek
📝 Výpočet krok za krokem:
🎨 Vizuální strom násobení
🎯 Permutace a kombinace
🔄 Permutace P(n,r)
💡 Záleží na pořadí: ABC ≠ BAC
🎲 Kombinace C(n,r)
💡 Na pořadí nezáleží: ABC = BAC
📋 Referenční tabulka faktoriálů
| n | n! | Počet číslic | Příklad z praxe |
|---|
💡 Zajímavosti
🃏 Míchání karet
52! ≈ 8.07 × 10⁶⁷ možných uspořádání. Kdyby každý člověk na Zemi míchal jeden balíček za sekundu od Velkého třesku, sotva bychom se přiblížili!
🎭 Sezení v divadle
10 lidí lze usadit v 10! = 3 628 800 různých způsobech. Organizace se tak stává exponenciálně složitější!
📊 0! = 1
Z definice platí 0! = 1. Existuje přesně jeden způsob, jak „uspořádat“ nulový počet objektů: nedělat nic! Díky tomu fungují vzorce konzistentně.
🚀 Rychlost růstu
Faktoriál roste rychleji než exponenciála! Zatímco 2ⁿ se zdvojnásobuje, n! se násobí stále většími hodnotami. 100! má 158 číslic!
Kalkulačka faktoriálu – Vypočítejte n! s kroky
🔢 Vypočítejte faktoriál (n!) pro libovolné číslo od 0 do 170. Prohlédněte si rozpis krok za krokem, permutace, kombinace a praktické využití.
Co je faktoriál?
Faktoriál nezáporného celého čísla n, značený jako n!, je součin všech kladných celých čísel menších nebo rovných n. Vyjadřuje počet způsobů, jak uspořádat n různých objektů.
Vzorec pro faktoriál
n! = n × (n-1) × (n-2) × ... × 3 × 2 × 1
- 0! = 1 (z definice)
- 1! = 1
- n! = n × (n-1)! (rekurzivní definice)
Příklady faktoriálu
- 5! = 5 × 4 × 3 × 2 × 1 = 120
- 10! = 10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1 = 3,628,800
- 0! = 1 (speciální případ)
- 20! = 2,432,902,008,176,640,000
Proč 0! = 1?
Existuje přesně jeden způsob, jak uspořádat nula objektů: prázdné uspořádání. Tato definice zajišťuje, že matematické vzorce (zejména v kombinatorice) fungují správně. Je také v souladu s rekurzivním vzorcem: n! = n × (n-1)!, takže 1! = 1 × 0! znamená, že 0! musí být 1.
Permutace
P(n,r) = n!/(n-r)!
Počet způsobů, jak uspořádat r objektů z n různých objektů, kde záleží na pořadí.
- Příklad: P(5,3) = 5!/(5-3)! = 120/2 = 60
- Využití: Pořadí na stupních vítězů v závodě (1., 2., 3.)
Kombinace
C(n,r) = n!/(r!(n-r)!)
Počet způsobů, jak vybrat r objektů z n různých objektů, kde na pořadí nezáleží.
- Příklad: C(5,3) = 5!/(3!×2!) = 120/(6×2) = 10
- Využití: Loterijní čísla, výběr komise
Koncové nuly v n!
Koncové nuly vznikají díky faktorům 10 = 2 × 5. Protože faktorů 2 je vždy více než 5, stačí počítat jen faktory 5:
Nuly = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + ...
- 10! má 2 koncové nuly (10, 5)
- 25! má 6 koncových nul (5, 10, 15, 20, 25×2)
- 100! má 24 koncových nul
Praktické využití
- Kryptografie: počet možných šifrovacích klíčů
- Plánování: způsoby uspořádání schůzek, úkolů, událostí
- Genetika: možné sekvence DNA/proteinů
- Pravděpodobnost: výpočet šancí ve hrách, loteriích
- Informatika: analýza složitosti algoritmů
- Výroba: uspořádání výrobních linek
- Logistika: úlohy optimalizace tras
Známé hodnoty faktoriálu
- 52! ≈ 8.07 × 10⁶⁷ (počet zamíchání balíčku karet)
- 70! ≈ 1.2 × 10¹⁰⁰ (překračuje počet atomů ve vesmíru ≈ 10⁸⁰)
- 100! ≈ 9.3 × 10¹⁵⁷ (158 číslic!)
- 170! ≈ 7.3 × 10³⁰⁶ (maximum pro JavaScript)
Stirlingova aproximace
Pro velká n je výpočet přesných faktoriálů nepraktický. Stirlingova aproximace nabízí:
n! ≈ √(2πn) × (n/e)ⁿ
Přesnost aproximace roste s n. Pro n = 10 je chyba < 1 %.
Rychlost růstu faktoriálu
Faktoriál roste mnohem rychleji než exponenciální nebo polynomiální funkce:
- Polynomická: n² = 100 pro n=10
- Exponenciální: 2ⁿ = 1,024 pro n=10
- Faktoriál: n! = 3,628,800 pro n=10
Dvojitý faktoriál
Dvojitý faktoriál (n!!) násobí každé druhé číslo:
- n!! = n × (n-2) × (n-4) × ... × 2 nebo 1
- 7!! = 7 × 5 × 3 × 1 = 105
- 8!! = 8 × 6 × 4 × 2 = 384
Subfaktoriál (deranžmá)
Subfaktoriál !n počítá permutace, ve kterých se žádný prvek neobjeví na své původní pozici:
!n = n! × (1/0! - 1/1! + 1/2! - 1/3! + ... + (-1)ⁿ/n!)
Příklad: !3 = 2 (uspořádání ABC, kde žádné písmeno není na původním místě: BCA, CAB)
Implementace v programování
Iterativní přístup:
function factorial(n) {
let result = 1;
for (let i = 2; i <= n; i++) {
result *= i;
}
return result;
}
Rekurzivní přístup:
function factorial(n) {
if (n === 0 || n === 1) return 1;
return n * factorial(n - 1);
}
💡 Tip: Při výpočtu permutací nebo kombinací rušte společné faktory ještě před výpočtem, abyste se vyhnuli přetečení. Např. pro C(100,2) = 100!/(2!×98!) počítejte jako (100×99)/2 = 4,950 místo výpočtu obrovských faktoriálů zvlášť!
Komentáře (0)
Podělte se o svůj názor — prosím, buďte slušní a držte se tématu.
Přihlaste se pro komentování