↓ Ir para o conteúdo principal

Coeficientes Binomiais e o Triângulo de Pascal

·2280 palavras·11 minutos·
 Author
Autor
Francisco Bustamante
Químico, cientista de dados e programador Python.
Tabela de conteúdos
A Arte de Contar - Este artigo faz parte de uma série de artigos.
Parte 9: Esse Artigo

Quantos subconjuntos tem um conjunto com 10 elementos? A resposta, \(1{.}024\), não precisa de contagem direta: ela emerge da soma da linha \(n = 10\) do Triângulo de Pascal. O coeficiente binomial \(\binom{n}{r}\) satisfaz identidades que se reforçam mutuamente e tornam cálculos complexos surpreendentemente diretos.

Por que coeficientes binomiais?
#

As identidades dos coeficientes binomiais reaparecem em áreas centrais da computação e da matemática:

  • Probabilidade e estatística: a distribuição binomial (modelo de \(n\) experimentos independentes com probabilidade \(p\) de sucesso) tem \(P(X = k) = \binom{n}{k} p^k (1-p)^{n-k}\). Boa parte da análise de testes A/B, de intervalos de confiança e de modelos de classificação Bayesiana passa por essa fórmula.
  • Teoria de códigos: o número de palavras binárias de comprimento \(n\) com exatamente \(k\) bits iguais a 1 (peso de Hamming \(k\), ou seja, o número de bits 1 na palavra) é \(\binom{n}{k}\). O Teorema das Linhas, \(\sum_k \binom{n}{k} = 2^n\), diz que a soma de todas as classes de peso dá o total de palavras binárias.
  • Análise de algoritmos: algoritmos de busca exaustiva que avaliam todos os subconjuntos de tamanho \(k\) têm complexidade \(\Theta\left(\binom{n}{k}\right)\). A simetria \(\binom{n}{k} = \binom{n}{n-k}\) revela que avaliar subconjuntos de tamanho \(k\) custa o mesmo que avaliar seus complementos de tamanho \(n-k\).
  • Expansão de polinômios: os coeficientes de \((1 + x)^n\) são exatamente \(\binom{n}{0}, \binom{n}{1}, \ldots, \binom{n}{n}\). Em aprendizado de máquina, o número de features polinomiais de grau \(\leq d\) geradas a partir de \(n\) variáveis de entrada (features) é \(\binom{n+d}{d}\), ligado diretamente à combinação com repetição.
  • Recorrências e programação dinâmica: a Relação de Pascal \(\binom{n}{r} = \binom{n-1}{r-1} + \binom{n-1}{r}\) é a base da memorização do triângulo, o mesmo padrão de subproblemas sobrepostos que torna a programação dinâmica (técnica de armazenar subresultados para reutilizá-los) eficiente.

O mapa das identidades
#

O diagrama abaixo mostra como as identidades deste artigo se relacionam: a Relação de Pascal gera o Triângulo, e o Triângulo revela os três teoremas de soma.

flowchart TD
    DEF["C(n,r) — definição"] --> SIM["Simetria
C(n,r) = C(n,n-r)"] DEF --> FRONT["Fronteira
C(n,0) = C(n,n) = 1"] DEF --> PASCAL["Relação de Pascal
C(n,r) + C(n,r+1) = C(n+1,r+1)"] PASCAL --> TRI["Triângulo de Pascal"] TRI --> LINHA["Teorema das Linhas
∑ C(n,k) = 2ⁿ"] TRI --> COL["Teorema das Colunas
∑ C(k,r) = C(n+1,r+1)"] TRI --> DIAG["Teorema das Diagonais
∑ C(n+k,k) = C(n+r+1,r)"]

Coeficiente Binomial
#

Definição

$$\binom{n}{r} = C(n, r) = \frac{n!}{r! (n-r)!}, \qquad 0 \leq r \leq n$$

Identidades Fundamentais
#

Simetria
#

Identidade 1: Simetria

$$\binom{n}{r} = \binom{n}{n-r}$$

Prova combinatória: escolher os \(r\) elementos que entram equivale a escolher os \(n-r\) que ficam de fora, porque cada subconjunto de \(r\) elementos corresponde a exatamente um subconjunto de \(n-r\) elementos, o seu complemento. Portanto, \(\binom{n}{r} = \binom{n}{n-r}\), que é o que queríamos demonstrar. \(\blacksquare\)

Fronteira e Secundária
#

Identidades 2 e 3

$$\binom{n}{0} = \binom{n}{n} = 1 \qquad \binom{n}{1} = \binom{n}{n-1} = n$$

Relação de Pascal (Stifel)
#

No Brasil, a relação costuma levar também o nome de Michael Stifel, que publicou parte do triângulo em 1544, na Arithmetica integra.

Identidade 4: Relação de Pascal

$$\binom{n}{r} + \binom{n}{r+1} = \binom{n+1}{r+1}$$

Prova algébrica: partindo da definição e usando o denominador comum \((r+1)!(n-r)!\):

$$\binom{n}{r} + \binom{n}{r+1} = \frac{n!}{r!(n-r)!} + \frac{n!}{(r+1)!(n-r-1)!}$$$$= \frac{n! (r+1)}{(r+1)!(n-r)!} + \frac{n! (n-r)}{(r+1)!(n-r)!} = \frac{n! [(r+1)+(n-r)]}{(r+1)!(n-r)!}$$$$= \frac{n! (n+1)}{(r+1)!(n-r)!} = \frac{(n+1)!}{(r+1)!(n-r)!} = \binom{n+1}{r+1}$$

Portanto, \(\binom{n}{r} + \binom{n}{r+1} = \binom{n+1}{r+1}\), que é o que queríamos demonstrar. \(\blacksquare\)

Prova combinatória: de \(n+1\) objetos, quantas formas escolher \(r+1\)? Fixe o objeto \(x\): ou ele está incluído (escolhem-se \(r\) dos \(n\) restantes: \(\binom{n}{r}\)) ou não está (escolhem-se \(r+1\) dos \(n\) restantes: \(\binom{n}{r+1}\)). Os dois casos não se sobrepõem e cobrem todas as escolhas, então se somam. Portanto, \(\binom{n}{r} + \binom{n}{r+1} = \binom{n+1}{r+1}\), que é o que queríamos demonstrar. \(\blacksquare\)

A figura abaixo ilustra a relação com o exemplo concreto \(C(4,2) = C(3,1) + C(3,2) = 3 + 3 = 6\):

Triângulo de Pascal com boxes azuis em C(3,1) e C(3,2) e setas convergindo para C(4,2), ilustrando a Relação de Pascal.
Relação de Pascal: cada elemento é a soma dos dois acima

Triângulo de Pascal
#

O triângulo antes de Pascal

O triângulo é muito mais antigo que Pascal e foi descoberto várias vezes, de forma independente:

  • Índia: o Chandaḥśāstra de Pingala (séc. III ou II a.C.) já contava as combinações de sílabas longas e curtas dos versos; por volta do ano 975, Halayudha, comentando Pingala, descreveu o triângulo explicitamente, com o nome de Meru-prastāra.
  • Pérsia: al-Karaji (953-1029) descreveu o triângulo num livro hoje perdido, e Omar Khayyam (1048-1131) o usou para extrair raízes. No Irã, ele é o triângulo de Khayyam.
  • China: Jia Xian (1010-1070) já o conhecia, e Yang Hui (1238-1298) o apresentou no século XIII. Lá, ele é o triângulo de Yang Hui.
  • Europa: Petrus Apianus publicou o triângulo completo em 1527, Stifel parte dele em 1544 e Tartaglia seis linhas em 1556. Na Itália, ele é o triângulo de Tartaglia.

Blaise Pascal reuniu as propriedades conhecidas e as usou em problemas de probabilidade no Traité du triangle arithmétique, publicado depois de sua morte, em 1665, o mesmo tratado que costuma ser apontado como a primeira formulação explícita da indução matemática. O nome “triângulo de Pascal” veio depois, com Montmort (1708) e de Moivre (1730). Mais em Pascal’s triangle.

A Relação de Pascal permite construir o triângulo iterativamente: cada elemento é a soma dos dois acima dele na linha anterior, com 1 nas extremidades de cada linha. Cada posição do triângulo corresponde a um coeficiente binomial: a posição da linha \(n\) e coluna \(r\) contém exatamente \(C(n, r)\). A figura abaixo mostra o triângulo escrito nessa notação:

Triângulo de Pascal em notação C(n,r): cada posição explicita o coeficiente binomial correspondente.
Triângulo de Pascal: posição (n,r) contém C(n,r)

Substituindo cada \(C(n,r)\) pelo seu valor numérico, obtemos o triângulo que costuma aparecer nos livros:

Triângulo de Pascal com valores numéricos de n=0 a n=8, com rótulos de linha à esquerda.
Triângulo de Pascal: linha n, coluna r contém C(n,r)

Na linha \(n\), a coluna \(r\) contém \(\binom{n}{r}\).

Teorema das Linhas
#

Teorema das Linhas

$$\sum_{k=0}^{n} \binom{n}{k} = 2^n$$

Prova: No Binômio de Newton \((a+b)^n\) (tema do próximo artigo), substitua \(a = b = 1\). Portanto, \(\sum_{k=0}^n \binom{n}{k} = 2^n\), que é o que queríamos demonstrar. \(\blacksquare\)

Interpretação: o número total de subconjuntos de um conjunto com \(n\) elementos é \(2^n\), e a soma dos coeficientes de uma linha do triângulo comprova isso diretamente. Para \(n = 10\), isso dá \(2^{10} = 1{.}024\), a resposta à pergunta da abertura.

A figura abaixo destaca a linha \(n = 5\) no triângulo, mostrando que \(1 + 5 + 10 + 10 + 5 + 1 = 32 = 2^5\):

Triângulo de Pascal com a linha n=5 destacada em vermelho e a soma 1+5+10+10+5+1=32=2^5 indicada por uma chave.
Teorema das Linhas: a soma de cada linha é uma potência de 2

Teorema das Colunas
#

Teorema das Colunas (Absorção)

$$\sum_{k=r}^{n} \binom{k}{r} = \binom{r}{r} + \binom{r+1}{r} + \cdots + \binom{n}{r} = \binom{n+1}{r+1}$$

Somar a \(r\)-ésima coluna do triângulo até a linha \(n\) resulta em \(\binom{n+1}{r+1}\), o elemento imediatamente abaixo e à direita do último somado. A figura abaixo mostra o triângulo em grade e destaca a coluna \(r = 2\): os valores \(1, 3, 6, 10, 15\) somam \(35 = C(7,3)\).

Triângulo de Pascal em formato de grade, com a coluna r=2 destacada em vermelho e uma seta apontando para C(7,3)=35 como resultado da soma.
Teorema das Colunas: a soma da coluna r até a linha n é C(n+1,r+1)

Teorema das Diagonais
#

Teorema das Diagonais

$$\sum_{k=0}^{r} \binom{n+k}{k} = \binom{n+r+1}{r}$$

Somam-se elementos ao longo de uma diagonal ascendente do triângulo e o resultado está na diagonal seguinte. A figura abaixo mostra a diagonal \(n = 2\): os valores \(C(2,0), C(3,1), C(4,2), C(5,3)\) estão conectados em vermelho e sua soma aponta para \(C(6,3) = 20\) em âmbar.

Triângulo de Pascal com a diagonal n=2 destacada em vermelho (C(2,0)=1, C(3,1)=3, C(4,2)=6, C(5,3)=10) e uma seta apontando para o resultado C(6,3)=20 em âmbar.
Teorema das Diagonais: a soma ao longo de uma diagonal dá o elemento na diagonal seguinte

$$\binom{2}{0} + \binom{3}{1} + \binom{4}{2} + \binom{5}{3} = 1 + 3 + 6 + 10 = 20 = \binom{6}{3} \checkmark$$

Exemplos Resolvidos
#

Simetria e complexidade de busca exaustiva
#

Enunciado: Um algoritmo avalia todos os subconjuntos de tamanho \(k = 3\) e todos os de tamanho \(k = 17\) de um conjunto com \(n = 20\) elementos. Quantos subconjuntos são avaliados em cada caso? O que a simetria implica?

Solução:

$$\binom{20}{3} = \frac{20 \times 19 \times 18}{3!} = \frac{6{.}840}{6} = \mathbf{1{.}140}$$$$\binom{20}{17} = \binom{20}{20-17} = \binom{20}{3} = \mathbf{1{.}140}$$

A simetria \(\binom{n}{r} = \binom{n}{n-r}\) tem consequência prática direta: avaliar subconjuntos de tamanho \(r\) custa exatamente o mesmo que avaliar seus complementos de tamanho \(n - r\). A contagem é máxima para \(r\) próximo de \(n/2\) e mínima para \(r\) próximo de \(0\) ou \(n\). Por isso, algoritmos de busca por subconjuntos pequenos ou grandes são mais eficientes do que buscas por subconjuntos de tamanho médio.

Soma de produto de inteiros consecutivos
#

Enunciado: Calcular \(S = 1 \cdot 2 \cdot 3 + 2 \cdot 3 \cdot 4 + \cdots + 50 \cdot 51 \cdot 52\).

Solução: Observe que \(k(k+1)(k+2) = 6\binom{k+2}{3}\), pois \(\binom{k+2}{3} = \frac{(k+2)(k+1)k}{6}\). Logo:

$$S = 6\sum_{k=1}^{50}\binom{k+2}{3} = 6\left[\binom{3}{3} + \binom{4}{3} + \cdots + \binom{52}{3}\right]$$

Pelo Teorema das Colunas com \(r = 3\), somando de \(k=3\) a \(52\):

$$\binom{3}{3} + \cdots + \binom{52}{3} = \binom{53}{4} = \frac{53 \times 52 \times 51 \times 50}{24} = 292{.}825$$$$S = 6 \times 292{.}825 = \mathbf{1{.}756{.}950}$$
Python: gerando o triângulo com programação dinâmica

Programação dinâmica é uma técnica que resolve um problema complexo dividindo-o em subproblemas menores e armazenando os resultados intermediários para reutilizá-los, em vez de recalculá-los do zero a cada passo. O triângulo de Pascal é um exemplo clássico: \(C(n,r)\) depende de \(C(n-1,r-1)\) e \(C(n-1,r)\), que já foram calculados na linha anterior. A Relação de Pascal \(\binom{i}{j} = \binom{i-1}{j-1} + \binom{i-1}{j}\) se traduz diretamente em código: cada célula é a soma das duas acima. Isso evita o cálculo de fatoriais e o risco de overflow para \(n\) grande.

def pascal(n):
    tri = [[1] * (i + 1) for i in range(n + 1)]
    for i in range(2, n + 1):
        for j in range(1, i):
            tri[i][j] = tri[i - 1][j - 1] + tri[i - 1][j]
    return tri

for linha in pascal(7):
    print(linha)
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]

A inicialização [1] * (i + 1) preenche as bordas com 1; o laço interno sobrescreve apenas os elementos interiores de cada linha. Complexidade: \(O(n^2)\) em tempo e espaço, o mesmo custo de preencher a tabela manualmente.

SQL: calculando \(C(n,r)\) com WITH RECURSIVE

Uma expressão de tabela comum (CTE, do inglês Common Table Expression) recursiva constrói a tabela de fatoriais até \(15!\); em seguida, três junções calculam \(C(n,r) = \frac{n!}{r! (n-r)!}\) para todo \(0 \leq r \leq n \leq 8\).

WITH RECURSIVE fat(n, f) AS (
    SELECT 0, 1
    UNION ALL
    SELECT n + 1, f * (n + 1) FROM fat WHERE n < 15
)
SELECT
    a.n                AS n,
    b.n                AS r,
    a.f / (b.f * c.f) AS "C(n,r)"
FROM fat a                        -- a.n = linha, a.f = n!
JOIN fat b ON b.n <= a.n          -- b.n = coluna r, b.f = r!
JOIN fat c ON c.n = a.n - b.n    -- c.f = (n-r)!
WHERE a.n <= 8
ORDER BY a.n, b.n;

O resultado é uma tabela com uma linha por par \((n, r)\), equivalente ao triângulo lido linha a linha. Compatível com SQLite, PostgreSQL e DuckDB.

Tabela-Resumo
#

Os três teoremas de soma partilham a mesma estrutura: em cada um, um parâmetro permanece fixo enquanto o outro varia ao longo de uma linha, coluna ou diagonal do triângulo. O painel abaixo destaca esse padrão com o parâmetro fixo em vermelho:

Painel com as fórmulas dos três teoremas (Linhas, Colunas, Diagonais) lado a lado, com o parâmetro fixo destacado em vermelho em cada uma.
Os três teoremas de soma diferem apenas pelo eixo de soma no triângulo

Identidade / Teorema Fórmula
Simetria \(\binom{n}{r} = \binom{n}{n-r}\)
Fronteira \(\binom{n}{0} = \binom{n}{n} = 1\)
Secundária \(\binom{n}{1} = \binom{n}{n-1} = n\)
Relação de Pascal (Stifel) \(\binom{n}{r} + \binom{n}{r+1} = \binom{n+1}{r+1}\)
Teorema das Linhas \(\displaystyle\sum_{k=0}^{n} \binom{n}{k} = 2^n\)
Teorema das Colunas \(\displaystyle\sum_{k=r}^{n} \binom{k}{r} = \binom{n+1}{r+1}\)
Teorema das Diagonais \(\displaystyle\sum_{k=0}^{r} \binom{n+k}{k} = \binom{n+r+1}{r}\)

Exercícios
#

Os exercícios a seguir aplicam as identidades do artigo: provas combinatórias, leitura do triângulo e uso do Teorema das Linhas e das Colunas. Estão ordenados do mais simples ao mais complexo.

Exercício 1: Identidade generalizada de Pascal

Prove, usando argumento combinatório, que:

$$\binom{n+2}{p+2} = \binom{n}{p} + 2\binom{n}{p+1} + \binom{n}{p+2}$$
Prova

Considere o conjunto \(\{a_1,\ldots,a_n, x, y\}\) com \(n+2\) elementos. Contamos subconjuntos de tamanho \(p+2\) por casos:

  • Nem \(x\) nem \(y\): \(\binom{n}{p+2}\)
  • Exatamente \(x\) ou exatamente \(y\) (2 casos): \(2\binom{n}{p+1}\)
  • Ambos \(x\) e \(y\): \(\binom{n}{p}\)

Os três casos não se sobrepõem e cobrem todos os subconjuntos de tamanho \(p+2\). Portanto, \(\binom{n+2}{p+2} = \binom{n}{p} + 2\binom{n}{p+1} + \binom{n}{p+2}\), que é o que queríamos demonstrar. \(\blacksquare\)

Exercício 2: Oitava linha do triângulo

Construa a linha \(n=8\) do triângulo a partir da linha \(n=7\): \(1\ 7\ 21\ 35\ 35\ 21\ 7\ 1\).

Solução

Somando pares adjacentes e mantendo 1 nas extremidades:

$$1\quad 8\quad 28\quad 56\quad 70\quad 56\quad 28\quad 8\quad 1$$
Exercício 3: Número de elementos a partir de subconjuntos

Se um conjunto \(A\) possui 512 subconjuntos, qual é \(|A|\)?

Solução

Pelo Teorema das Linhas, um conjunto com \(n\) elementos tem exatamente \(2^n\) subconjuntos. Basta resolver:

\(2^n = 512 = 2^9 \Rightarrow n = \mathbf{9}\)

Exercício 4: Coquetéis de 2 ou mais ingredientes

Quantos coquetéis (misturas de ≥ 2 ingredientes) podem ser feitos com 7 ingredientes distintos?

Solução

Subconjuntos de tamanho ≥ 2: \(2^7 - \binom{7}{0} - \binom{7}{1} = 128 - 1 - 7 = \mathbf{120}\)

Exercício 5: Prova pelo Teorema das Colunas

Prove que \(\displaystyle\sum_{k=1}^n k = \dfrac{n(n+1)}{2}\).

Demonstração

Escreva \(k = \binom{k}{1}\):

$$\sum_{k=1}^n \binom{k}{1} = \binom{n+1}{2} = \frac{(n+1)n}{2}$$

Portanto, \(\displaystyle\sum_{k=1}^n k = \dfrac{n(n+1)}{2}\), que é o que queríamos demonstrar. \(\blacksquare\)

Próximos passos
#

As identidades deste artigo revelam a estrutura interna de \(\binom{n}{r}\), mas não explicam por que esse coeficiente aparece nos produtos de potências. Quando expandimos \((a+b)^n\), os coeficientes que surgem em cada termo \(a^k b^{n-k}\) são exatamente \(\binom{n}{k}\), e o Teorema das Linhas nada mais é do que o caso \(a = b = 1\) dessa expansão. Esse é o Binômio de Newton, tema do próximo artigo da série.

A Arte de Contar - Este artigo faz parte de uma série de artigos.
Parte 9: Esse Artigo

Relacionados

Binômio de Newton: A Expansão de (a+b)^n

·1939 palavras·10 minutos
Qual é o coeficiente de um termo na expansão de um binômio elevado à décima potência? O Binômio de Newton responde em uma linha, com os coeficientes do Triângulo de Pascal. Veremos o teorema e sua prova por indução, a fórmula do termo geral e as identidades que saem de casos particulares.