Dado un número entero N , la tarea es encontrar el 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:
Coeficiente Binomial Central = = = = 20
Entrada: N = 2
Salida: 6
Enfoque: El coeficiente binomial central es un coeficiente binomial de la forma . El Coeficiente Binomial 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:
= = = 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)