¿Cómo evaluar el coeficiente binomial de dos enteros n y k en JavaScript?

Las siguientes son las definiciones comunes de coeficientes binomiales.

Un coeficiente binomial C(n, k) se puede definir como el coeficiente de x^k en la expansión de (1 + x)^n. El coeficiente binomial C(n, k) también da el número de formas, sin tener en cuenta el orden, en que pueden elegirse k objetos entre n objetos. Más formalmente, el número de subconjuntos de k elementos (o k combinaciones) de un conjunto de n elementos. .

Declaración del problema: escriba una función que tome dos parámetros n y k y devuelva el valor del coeficiente binomial C (n, k). Por ejemplo, su función debería devolver 6 para n = 4 y k = 2, y debería devolver 10 para n = 5 y k = 2 .

Planteamiento: A continuación se muestran los pasos a seguir para crear una función que devuelva el coeficiente binomial de dos enteros.

  • Cree una función que tome los argumentos n y k .
  • Ahora comprueba si la n y la k son números. Si ambos o uno de ellos no son números, devuelva NaN.
  • Ahora comprueba si k es menor que 0 o k es mayor que n. Si una de las afirmaciones es verdadera, devuelve 0 .
  • Ahora compruebe si k es igual a 1 o k es igual a n . Si una de las afirmaciones es verdadera, devuelve 1 .
  • Ahora compruebe si es igual a 1 o k es igual a (n-1). Si una de las declaraciones es verdadera, devuelve n .
  • Ahora escribe la lógica para obtener el coeficiente binomial.

Ejemplo:

Javascript

<script>
  function binomialCoefficient (n, k){
  
    // Checkuing if n and k are integer
    if(Number.isNaN(n) || Number.isNaN(k)){
      return NaN;
    }
  
    if(k < 0 || k > n){
      return 0
    }
  
    if(k === 0 || k === n){
      return 1
    }
  
    if(k === 1 || k === n - 1){
      return n
    }
  
    let res = n;
    for(let i = 2; i <= k; i++){
      res *= (n - i + 1) / i;
    }
  
    return Math.round(res);
  }
  
  console.log(binomialCoefficient(10, 2))
</script>

Producción:

45

Publicación traducida automáticamente

Artículo escrito por _saurabh_jaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *