nPr y nCr
Escribe una función que calcule eficientemente nPr (el número de permutaciones de r elementos de un conjunto de tamaño n) y otra función que calcule eficientemente nCr (el número de combinaciones de r elementos de un conjunto de tamaño n, sin importar el orden).
- La fórmula para calcular nPr es
n!/(n-r)!("!"es la operación factorial). - La fórmula para calcular nCr es
n!/(r!(n-r)!).
Tus funciones deben funcionar eficientemente en casos en los que n! o r! sean muy grandes en comparación con el resultado. Calcular simplemente los factoriales y dividir hará que tu programa exceda el tiempo límite. Intenta pensar en un método más eficiente.
Ejemplos
# Permutations
nPr(7, 4) ➞ 840
nPr(300, 3) ➞ 26730600
# Combinations
nCr(7, 4) ➞ 35
nCr(300, 3) ➞ 4455100
nCr(300, 297) ➞ 4455100Notas
nyrsiempre serán enteros positivos donden>=r.- Piensa en qué factores se cancelarán al dividir los factoriales.