Uma calculadora de fatorial calcula n! — o produto de todos os inteiros positivos de 1 até n. A função aparece em combinatória, probabilidade, cálculo (séries de Taylor) e estatística, e cresce mais rápido que qualquer polinômio ou exponencial simples. Esta calculadora aceita inteiros de 0 a 170 em precisão padrão; para n >170 o resultado ultrapassa o intervalo IEEE-754 (~1,8 × 10³⁰⁸), então entradas maiores usam aritmética BigInt para preservar todos os dígitos. Cada cálculo mostra o valor final mais a expansão passo a passo, útil para conferir tarefas, montar problemas combinatórios e resolver probabilidade.
O que é um Fatorial?
Um fatorial é o produto de todos os inteiros positivos de 1 até um inteiro não negativo n. Escreve-se n! e lê-se "n fatorial" — a notação com ponto de exclamação foi introduzida pelo matemático francês Christian Kramp em 1808 e firmou-se por ser concisa e inequívoca. Por convenção 0! = 1; trata-se do produto vazio, o análogo multiplicativo da soma vazia valer 0, e é necessário para que fórmulas como C(n,0) = 1 e a série de Taylor de e^x se comportem corretamente em n = 0.
Como calcular o Fatorial?
Para calcular o fatorial manualmente:
- Escolha o inteiro não negativo n cujo fatorial você quer.
- Liste os inteiros de 1 até n.
- Multiplique-os em sequência: 1 × 2 × 3 × ... × n. A multiplicação iterativa da esquerda para a direita é a mais simples e evita pilhas de recursão profundas.
- O produto final é n!.
- Para conferência, esta calculadora também mostra a expansão completa para você verificar cada passo.
A fórmula do Fatorial:
n! = n × (n-1) × (n-2) × ... × 2 × 1, com caso base 0! = 1.
Exemplo
Para calcular 5!:
5! = 5 × 4 × 3 × 2 × 1 = 120
Portanto, 5! = 120.
Mude n no campo de entrada para calcular qualquer outro fatorial; a expansão abaixo do resultado se atualiza junto.
Casos especiais:
- 0! = 1 (por definição, o produto vazio)
- 1! = 1
- Fatoriais crescem muito rapidamente: 10! = 3.628.800; 20! ≈ 2,43 × 10¹⁸; 70! ≈ 1,2 × 10¹⁰⁰
Aplicações de Fatoriais:
- Permutações: n! ordenações de n objetos distintos
- Combinações: C(n,k) = n! / (k! × (n−k)!)
- Probabilidade e estatística (coeficientes multinomiais, valores esperados)
- Expansões em série de Taylor: e^x = Σ xⁿ / n!
- Aproximação de Stirling para fatoriais grandes: n! ≈ √(2πn) × (n/e)ⁿ
Perguntas Frequentes
Três argumentos independentes apontam para 0! = 1, e por isso os matemáticos fixaram essa convenção em vez de deixar 0! sem definição. (1) Produto vazio: em álgebra, multiplicar zero números resulta no elemento neutro multiplicativo, que é 1 — a mesma lógica que faz x⁰ = 1 para qualquer x não nulo. (2) Combinatório: C(n,0) conta de quantas formas você não escolhe nada de n itens, que é exatamente 1 (a seleção vazia). A fórmula C(n,0) = n! / (0! × n!) só dá 1 se 0! = 1. (3) Consistência recursiva: a regra n! = n × (n−1)! tem de valer em n = 1, dando 1! = 1 × 0!, então 0! deve ser 1 para 1! = 1 sair certo. A mesma lógica se estende à função gama Γ(n+1) = n!, onde Γ(1) = 1 por integração direta. Logo, 0! = 1 não é arbitrário — é o único valor que mantém todo o arcabouço consistente.
Porque 170! ≈ 7,257 × 10³⁰⁶ é o maior fatorial que cabe em um número de ponto flutuante de precisão dupla IEEE-754 padrão, cujo máximo é cerca de 1,798 × 10³⁰⁸. 171! ≈ 1,241 × 10³⁰⁹ estoura para Infinity em JavaScript, Excel e na maioria das calculadoras. Para lidar com n maiores, o cálculo passa para BigInt — um tipo inteiro de precisão arbitrária integrado ao JavaScript moderno — que calcula qualquer fatorial sujeito apenas a memória e tempo. 1000! tem 2568 dígitos e leva uma fração de segundo; 100000! tem 456.574 dígitos e leva alguns segundos. Para fatoriais muito grandes você geralmente não quer o valor exato — quer a aproximação de Stirling log(n!) ≈ n log n − n + 0,5 log(2πn), exata até frações de porcento mesmo para n moderados.
A aproximação de Stirling diz que n! ≈ √(2πn) × (n/e)ⁿ para n grande. O erro fica abaixo de 1% para n ≥ 10 e abaixo de 0,1% para n ≥ 100, então é essencialmente exata para qualquer uso onde você não precise de cada dígito. A versão logarítmica, log(n!) ≈ n log n − n + 0,5 log(2πn), é a que você realmente usa na prática porque o exponencial bruto estoura tão rápido quanto o próprio n! — mas o logaritmo não. Mecânica estatística, teoria da informação e o método do ponto de sela em análise complexa se apoiam na forma logarítmica para estimar grandezas como a entropia de um sistema, o comportamento assintótico de coeficientes binomiais e o teorema central do limite. James Stirling publicou isto no Methodus Differentialis de 1730; uma versão mais precisa foi descoberta antes por de Moivre. Refinar para mais precisão dá a série de Stirling, assintótica, útil em análise numérica.
Os três contam arranjos, mas diferem no que consideram distinto. O fatorial n! conta o número de ordenações de n objetos distintos — ABCDE tem 5! = 120 ordenações. A permutação P(n,k) = n! / (n−k)! conta arranjos ordenados de k objetos escolhidos entre n — P(5,2) = 5!/3! = 20 pares ordenados, em que AB e BA contam separadamente. A combinação C(n,k) = n! / (k! × (n−k)!) conta seleções não ordenadas de k objetos entre n — C(5,2) = 10 porque AB e BA agora são a mesma coisa. Regra prática: se a ordem importa, use permutação; se não importa, use combinação. O fatorial é o caso especial k = n. Os três reduzem a expressões limpas com fatoriais, por isso a calculadora de fatorial é a base de toda a combinatória.
Sim — são definidos pela função gama Γ, que estende o fatorial a quase todos os reais e complexos. A relação exata é n! = Γ(n+1), então Γ(1) = 0! = 1, Γ(2) = 1! = 1, Γ(3) = 2! = 2 e assim por diante. Para argumentos não inteiros, aparecem valores úteis como Γ(0,5) = √π, equivalente a (−0,5)! = √π ≈ 1,7725. Os valores semi-inteiros aparecem na física toda — volume de uma esfera n-dimensional, distribuição qui-quadrado, normalização da velocidade de Maxwell-Boltzmann. Inteiros negativos, porém, continuam indefinidos: Γ tem polos em 0, −1, −2, ..., logo (−1)!, (−2)! etc. são infinitos. Esta calculadora retorna erro para entrada inteira negativa em vez de fornecer um valor enganoso. Se precisar de valores de Γ, uma ferramenta dedicada ou uma linguagem com rotina tgamma é o caminho correto.
Os zeros finais de n! vêm dos fatores 10 no produto, e cada 10 precisa de um 2 e um 5. A quantidade de 2 em n! sempre supera a quantidade de 5, então o número de zeros finais é igual ao total de fatores 5 na fatoração de n!. A fórmula de Legendre dá isso exatamente: Z(n) = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + ⌊n/625⌋ + ... até os termos se anularem. Exemplo: 100! tem ⌊100/5⌋ + ⌊100/25⌋ = 20 + 4 = 24 zeros finais; 1000! tem 200 + 40 + 8 + 1 = 249 zeros finais. É um problema clássico de matemática de competição, e a identidade de Legendre resolve em O(log n) — muito mais rápido do que calcular o fatorial em si. A mesma técnica vale em qualquer base: para base b, conte a multiplicidade de cada fator primo de b em n! e tome o mínimo após escalar.
Iterativo quase sempre é melhor para n!. A definição recursiva n! = n × (n−1)! lê-se de forma natural e é o exemplo de manual para ensinar recursão, mas na prática aloca um quadro de pilha por inteiro até o caso base. Engines JavaScript têm limites de pilha tipicamente entre 10.000 e 100.000 quadros antes de lançar RangeError: Maximum call stack size exceeded, e Python por padrão tem 1.000. Um loop iterativo — for (let i = 2, r = 1n; i <= n; i++) r *= BigInt(i) — usa pilha constante e roda mais rápido por não ter sobrecarga de chamada por passo. Algumas linguagens (Scheme, Scala em casos especiais) implementam otimização de chamada de cauda e podem compilar um fatorial recursivo bem escrito como loop, mas JavaScript e Python não. Para aprender, escreva a versão recursiva uma vez para sentir a estrutura; para código em produção ou cálculo no navegador como esta calculadora, use o loop.
Em mais lugares do que se imagina. (1) Probabilidade: paradoxo do aniversário, contagem de mãos de pôquer, probabilidades de loteria — tudo apoiado em combinações, que são razões de fatoriais. (2) Estatística: distribuições binomial e multinomial, qui-quadrado e gama, aproximações normais baseadas em Stirling para leis discretas. (3) Cálculo: toda série de Taylor — sen, cos, e^x, log(1+x) — tem n! no denominador. O fatorial no denominador é o que faz a série convergir mais rápido do que o polinômio cresce no numerador. (4) Física: funções de partição em mecânica estatística, contagem de caminhos em mecânica quântica, seções de choque de espalhamento. (5) Ciência da computação: algoritmos de contagem, análise do caso médio de ordenação (n! permutações em n elementos), derivações da FFT. (6) Vida cotidiana: contagens de anagramas ("de quantas formas podemos arranjar as letras de MISSISSIPPI?" usa 11! dividido pelos fatoriais das letras repetidas), arranjos de assentos, estimativas de força de senha.