2

#PlatziCodingChallenge - Calculador de combinaciones

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:

  • n: el grupo de números entre los que puedes obtener una combinación (digamos, 1,2,3,4,5,6,7,8,9)
  • r: la cantidad de elementos que debe tener tu combinación (digamos, 3)

Y devolver la cantidad de combinaciones posibles dados estos parámetros.

Escribe tu comentario
+ 2
Ordenar por:
2
28285Puntos
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
Capture.PNG
2
19943Puntos

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"
2
7689Puntos
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)