nPr e nCr
Escreva uma função que calcule eficientemente nPr (o número de permutações de r itens de um conjunto de tamanho n) e outra função que calcule eficientemente nCr (o número de combinações de r itens de um conjunto de tamanho n, independentemente da ordem).
- A fórmula para calcular nPr é
n!/(n-r)!("!"é a operação fatorial). - A fórmula para calcular nCr é
n!/(r!(n-r)!).
Suas funções devem funcionar eficientemente em casos em que n! ou r! sejam muito grandes em comparação com o resultado. Calcular simplesmente os fatoriais e fazer a divisão fará seu programa estourar o tempo limite. Veja se consegue pensar em um método mais eficiente.
Exemplos
# Permutations
nPr(7, 4) ➞ 840
nPr(300, 3) ➞ 26730600
# Combinations
nCr(7, 4) ➞ 35
nCr(300, 3) ➞ 4455100
nCr(300, 297) ➞ 4455100Observações
nersempre serão inteiros positivos em quen>=r.- Pense em quais fatores serão cancelados ao dividir os fatoriais.