Crea un algoritmo para solucionar combinaciones
Crea una función capaz de calcular la cantidad de combinaciones posibles de una cierta cantidad entre un conjunto de números. Video de referencia para la ecuación: https://www.youtube.com/watch?v=3ZVq2KvClZ8.
Tu función debe recibir 2 parámetros:
Y devolver la cantidad de combinaciones posibles dados estos parámetros.
deffactorial(n):if n <= 1: return1return n * factorial(n-1) defhow_many_combinations(n, r):return factorial(n) / (factorial(n -r)*factorial(r)) defconcat_values(fitm, items, start, r): result = [fitm] for i in range(r): result.append(items[start + i]) return result defcalc_combination(items, r, len, start_from): take = r - 1for i in range(start_from, len - take): if r == 1: yield [items[i]] else: item = items[i] for j in calc_combination(items, r-1, len, i + 1): yield [item] + j defcombination(items, r):return calc_combination(items, r, len(items), 0) if __name__ == '__main__': data = ['A', 'E', 'I', 'O', 'U'] group = 3 gen = combination(data, group) n = how_many_combinations(len(data), group) print(f"The number of combinations are: {n}") whileTrue: try: print(next(gen)) except StopIteration: break
Calculador de combinaciones en JavaScript y en Python
// Calculador de combinaciones en JavaScriptfunctionfactorial(x) { if (x <= 1) { return1 } else { return x * factorial(x - 1) } } functionnCr(n, r) { if (n < r) { return'"n" no puede ser menor que "r"' } else { return factorial(n) / (factorial(n - r) * factorial(r)) } } console.log(nCr(4, 2)) // 6console.log(nCr(9, 6)) // 84console.log(nCr(5, 7)) // "n" no puede ser menor que "r"
# Calculador de combinaciones en JavaScriptdeffactorial(x):if (x <= 1): return1else: return x * factorial(x - 1) defnCr(n, r):if (n < r): return'"n" no puede ser menor que "r"'else: return round(factorial(n) / (factorial(n - r) * factorial(r))) print(nCr(4, 2)) # 6 print(nCr(9, 6)) # 84 print(nCr(5, 7)) # "n" no puede ser menor que "r"
letnum = [1,2,3,4] letr = 2 function calcular(num, r){ letn = parseInt(num.length) letnumerador = 1 for (leti = 2; i <= n; i++){ numerador = numerador * i } letdominador1 = 1 for (leti = 2; i <= (n - r); i++){ dominador1 = dominador1 * i } letdominador2 = 1 for (leti = 2; i <= r; i++){ dominador2 = dominador2 * i } letresultado = parseFloat(numerador / (dominador1 * dominador2)) console.log(resultado) } calcular(num, r)