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.