Coeficiente binomial central

Dado un número entero N , la tarea es encontrar el  N^{th}    coeficiente binomial central
Los primeros coeficientes binomiales centrales para N = 0, 1, 2, 3… son 
 

1, 2, 6, 20, 70, 252, 924, 3432…..

Ejemplos: 
 

Entrada: N = 3 
Salida: 20 
Explicación: 
N^{th}    Coeficiente Binomial Central =  \binom{2N}{N}    \binom{2*3}{3}    \frac{6*5*4}{3*2*1}    = 20
Entrada: N = 2 
Salida:
 

Enfoque: El coeficiente binomial central es un coeficiente binomial de la forma  \binom{2N}{N}    . El Coeficiente Binomial  \binom{2N}{N}    se puede calcular usando este enfoque para un valor dado N usando Programación Dinámica .
Por ejemplo: 
 

El coeficiente binomial central de N = 3 viene dado por: 
\binom{2N}{N}    \binom{2*3}{3}    \frac{6*5*4}{3*2*1}    = 20 
 

A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ implementation to find the
// Nth Central Binomial Coefficient
 
#include<bits/stdc++.h>
using namespace std;
 
// Function to find the value of
// Nth Central Binomial Coefficient
int binomialCoeff(int n, int k)
{
    int C[n + 1][k + 1];
    int i, j;
 
    // Calculate value of Binomial
    // Coefficient in bottom up manner
    for (i = 0; i <= n; i++)
    {
        for (j = 0; j <= min(i, k); j++)
        {
            // Base Cases
            if (j == 0 || j == i)
                C[i][j] = 1;
 
            // Calculate value
            // using previously
            // stored values
            else
                C[i][j] = C[i - 1][j - 1] +
                        C[i - 1][j];
        }
    }
 
    return C[n][k];
}
 
// Driver Code
int main()
{
    int n = 3;
    int k = n;
    n = 2*n;
    cout << binomialCoeff(n, k);
}

Java

// Java implementation to find the
// Nth Central Binomial Coefficient
class GFG{
     
// Function to find the value of
// Nth Central Binomial Coefficient
static int binomialCoeff(int n, int k)
{
    int[][] C = new int[n + 1][k + 1];
    int i, j;
 
    // Calculate value of Binomial
    // Coefficient in bottom up manner
    for(i = 0; i <= n; i++)
    {
       for(j = 0; j <= Math.min(i, k); j++)
       {
            
          // Base Cases
          if (j == 0 || j == i)
              C[i][j] = 1;
           
          // Calculate value
          // using previously
          // stored values
          else
              C[i][j] = C[i - 1][j - 1] +
                        C[i - 1][j];
       }
    }
    return C[n][k];
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 3;
    int k = n;
    n = 2 * n;
     
    System.out.println(binomialCoeff(n, k));
}
}
 
// This code is contributed by Ritik Bansal

Python3

# C# implementation to find the
# Nth Central Binomial Coefficient
 
# Function to find the value of
# Nth Central Binomial Coefficient
def binomialCoeff(n, k):
     
    C = [[0 for j in range(k + 1)]
            for i in range(n + 1)]
     
    i = 0
    j = 0
     
    # Calculate value of Binomial
    # Coefficient in bottom up manner
    for i in range(n + 1):
        for j in range(min(i, k) + 1):
             
            # Base Cases
            if j == 0 or j == i:
                C[i][j] = 1
                 
            # Calculate value
            # using previously
            # stored values
            else:
                C[i][j] = (C[i - 1][j - 1] +
                           C[i - 1][j])
     
    return C[n][k]
     
# Driver code
if __name__=='__main__':
     
    n = 3
    k = n
    n = 2 * n
     
    print(binomialCoeff(n, k))
         
# This code is contributed by rutvik_56

C#

// C# implementation to find the
// Nth Central Binomial Coefficient
using System;
class GFG{
     
// Function to find the value of
// Nth Central Binomial Coefficient
static int binomialCoeff(int n, int k)
{
    int [,]C = new int[n + 1, k + 1];
    int i, j;
 
    // Calculate value of Binomial
    // Coefficient in bottom up manner
    for(i = 0; i <= n; i++)
    {
       for(j = 0; j <= Math.Min(i, k); j++)
       {
            
          // Base Cases
          if (j == 0 || j == i)
              C[i, j] = 1;
               
          // Calculate value
          // using previously
          // stored values
          else
              C[i, j] = C[i - 1, j - 1] +
                        C[i - 1, j];
       }
    }
    return C[n, k];
}
 
// Driver Code
public static void Main()
{
    int n = 3;
    int k = n;
    n = 2 * n;
     
    Console.Write(binomialCoeff(n, k));
}
}
 
// This code is contributed by Code_Mech

Javascript

<script>
 
// Javascript implementation to find the
// Nth Central Binomial Coefficient
 
// Function to find the value of
// Nth Central Binomial Coefficient
function binomialCoeff(n, k)
{
    var C = Array.from(Array(n+1),()=> Array(k+1));
    var i, j;
 
    // Calculate value of Binomial
    // Coefficient in bottom up manner
    for (i = 0; i <= n; i++)
    {
        for (j = 0; j <= Math.min(i, k); j++)
        {
            // Base Cases
            if (j == 0 || j == i)
                C[i][j] = 1;
 
            // Calculate value
            // using previously
            // stored values
            else
                C[i][j] = C[i - 1][j - 1] +
                        C[i - 1][j];
        }
    }
 
    return C[n][k];
}
 
// Driver Code
var n = 3;
var k = n;
n = 2*n;
document.write( binomialCoeff(n, k));
 
 
</script>
Producción: 

20

 

Complejidad temporal: O(N * K)
Espacio auxiliar: O(N * K)

Publicación traducida automáticamente

Artículo escrito por spp____ 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 *