Introdução a Probabilidade - Análise Combinatória
Permutação
O que é permutação?
Uma permutação é o agrupamento ordenado de n elementos distintos.
Quando utilizamos?
Utilizamos quando queremos saber de quantas formas distintas conseguimos organizar um número de elementos.
Exemplo:
Qual o número de anagramas para a palavra ‘Python’?
6! = 6 * 5 * 4 * 3 * 2 * 1 = 720
Uma implementação em Python da Permutação:
from functools import reduce
n = 6
fatorial = reduce((lambda x, y: x * y), range(1,n + 1))
print(fatorial)
Arranjo
O que é arranjo?
Um arranjo de n elementos dispostos p a p, com p menor ou igual a n, é um escolha de p entre esses n elementos na qual a ordem importa.
Quando utilizamos?
Devemos utilizar arranjo quando a ordem importa.
Exemplo:
Temos 20 pilotos de Fórmula 1 e queremos saber quantos podios de primeiro, segundo e terceiro lugares podemos formar. Temos que levar em conta que um pódio formado por Vettel, Hamilton e Raikkonen é diferente do pódio formado por Hamilton, Raikkonen e Vettel.
Uma implementação em Python de arranjo:
from functools import reduce
n = 20
p = 3
fatorial_n = reduce((lambda x, y: x * y), range(1,n + 1))
fatorial_n_p = reduce((lambda x, y: x * y), range(1,n + 1 - p))
print(fatorial_n / fatorial_n_p)
Combinação
O que é combinação?
São escolhas não ordenadas de n elementos tomados p a p desses elementos.
Quando utilizamos?
Quando o importante é que elementos sejam diferentes.
Exemplo:
Como formar uma equipe do Master Chef de 4 pessoas dentre 10 pessoas? Aqui a ordem não importa, logo uma equipe formada por Haila, Helton e Vitor é a mesma coisa que uma equipe formada por Helton, Vitor e Haila.
Uma implementação em Python de Combinação:
n = 10
p = 4
fatorial_n = reduce((lambda x, y: x * y), range(1,n + 1))
fatorial_p = reduce((lambda x, y: x * y), range(1,p + 1))
fatorial_n_p = reduce((lambda x, y: x * y), range(1,n + 1 - p))
print(fatorial_n / (fatorial_p * fatorial_n_p))