Sum of Binomial coefficients - GeeksforGeeks

30 Apr, 2021
Given a positive integer n, the task is to find the sum of binomial coefficient i.enC0 + nC1 + nC2 + ....... + nCn-1 + nCnExamples:  
Input : n = 4
Output : 16
4C0 + 4C1 + 4C2 + 4C3 + 4C4
= 1 + 4 + 6 + 4 + 1
= 16

Input : n = 5
Output : 32
 
Method 1 (Brute Force): The idea is to evaluate each binomial coefficient term i.e nCr, where 0 <= r <= n and calculate the sum of all the terms.Below is the implementation of this approach:  
C++
Java
Python3
C#
PHP
Javascript
// CPP Program to find the sum of Binomial// Coefficient.#include <bits/stdc++.h>using namespace std; // Returns value of Binomial Coefficient Sumint binomialCoeffSum(int n){    int C[n + 1][n + 1];     // Calculate value of Binomial Coefficient    // in bottom up manner    for (int i = 0; i <= n; i++) {        for (int j = 0; j <= min(i, n); 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];        }    }     // Calculating the sum.    int sum = 0;    for (int i = 0; i <= n; i++)        sum += C[n][i];     return sum;} /* Driver program to test above function*/int main(){    int n = 4;    printf("%d", binomialCoeffSum(n));    return 0;}
// Java Program to find the sum// of Binomial Coefficient. class GFG {         // Returns value of Binomial    // Coefficient Sum    static int binomialCoeffSum(int n)    {        int C[][] = new int[n + 1][n + 1];             // Calculate value of Binomial        // Coefficient in bottom up manner        for (int i = 0; i <= n; i++)        {            for (int j = 0; j <= Math.min(i, n); 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];                                          }        }             // Calculating the sum.        int sum = 0;        for (int i = 0; i <= n; i++)            sum += C[n][i];             return sum;    }         /* Driver program to test above function*/    public static void main(String[] args)    {        int n = 4;        System.out.println(binomialCoeffSum(n));    }} // This code is contributed by prerna saini.
# Python  Program to find the sum# of Binomial Coefficient.  import math     # Returns value of Binomial# Coefficient Sumdef binomialCoeffSum( n):             C = [[0]*(n+2) for i in range(0,n+2)]              # Calculate value of Binomial        # Coefficient in bottom up manner        for i in range(0,n+1):            for j in range(0, min(i, n)+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]              # Calculating the sum.        sum = 0        for i in range(0,n+1):            sum += C[n][i]              return sum           # Driver program to test above functionn = 4print(binomialCoeffSum(n)) # This code is contributed by Gitanjali.
// C# program to find the sum// of Binomial Coefficient.using System; class GFG {     // Returns value of Binomial    // Coefficient Sum    static int binomialCoeffSum(int n)    {        int[, ] C = new int[n + 1, n + 1];         // Calculate value of Binomial        // Coefficient in bottom up manner        for (int i = 0; i <= n; i++)        {            for (int j = 0; j <= Math.Min(i, n); 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];            }        }         // Calculating the sum.        int sum = 0;        for (int i = 0; i <= n; i++)            sum += C[n, i];         return sum;    }     /* Driver program to test above function*/    public static void Main()    {        int n = 4;        Console.WriteLine(binomialCoeffSum(n));    }} // This code is contributed by vt_m.
<?php// PHP Program to find the// sum of Binomial Coefficient.// Returns value of Binomial// Coefficient Sum function binomialCoeffSum($n){    $C[$n + 1][$n + 1] = array(0);     // Calculate value of    // Binomial Coefficient    // in bottom up manner    for ($i = 0; $i <= $n; $i++)    {        for ($j = 0;             $j <= min($i, $n); $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];        }    }     // Calculating the sum.    $sum = 0;    for ($i = 0; $i <= $n; $i++)        $sum += $C[$n][$i];     return $sum;} // Driver Code$n = 4;echo binomialCoeffSum($n); // This code is contributed by ajit?>
<script> // JavaScript Program to find the sum// of Binomial Coefficient.     // Returns value of Binomial    // Coefficient Sum    function binomialCoeffSum(n)    {        let C = new Array(n + 1);                 // Loop to create 2D array using 1D array        for (var i = 0; i < C.length; i++) {            C[i] = new Array(2);        }               // Calculate value of Binomial        // Coefficient in bottom up manner        for (let i = 0; i <= n; i++)        {            for (let j = 0; j <= Math.min(i, n); 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];                                              }        }               // Calculating the sum.        let sum = 0;        for (let i = 0; i <= n; i++)            sum += C[n][i];               return sum;    } // Driver code                 let n = 4;        document.write(binomialCoeffSum(n));                   </script>
Output: 
16
Method 2 (Using Formula):  
This can be proved in 2 ways. First Proof: Using Principle of induction. 
For basic step, n = 0 LHS = 0C0 = (0!)/(0! * 0!) = 1/1 = 1. RHS= 20 = 1. LHS = RHSFor induction step: Let k be an integer such that k > 0 and for all r, 0 <= r <= k, where r belong to integers, the formula stand true. Therefore, kC0 + kC1 + kC2 + ....... + kCk-1 + kCk = 2kNow, we have to prove for n = k + 1, k+1C0 + k+1C1 + k+1C2 + ....... + k+1Ck + k+1Ck+1 = 2k+1LHS = k+1C0 + k+1C1 + k+1C2 + ....... + k+1Ck + k+1Ck+1 (Using nC0 = 0 and n+1Cr = nCr + nCr-1) = 1 + kC0 + kC1 + kC1 + kC2 + ...... + kCk-1 + kCk + 1 = kC0 + kC0 + kC1 + kC1 + ...... + kCk-1 + kCk-1 + kCk + kCk = 2 X ∑ nCr = 2 X 2k = 2k+1 = RHS
Second Proof: Using Binomial theorem expansion  
Binomial expansion state, (x + y)n = nC0 xn y0 + nC1 xn-1 y1 + nC2 xn-2 y2 + ......... + nCn-1 x1 yn-1 + nCn x0 ynPut x = 1, y = 1 (1 + 1)n = nC0 1n 10 + nC1 xn-1 11 + nC2 1n-2 12 + ......... + nCn-1 11 1n-1 + nCn 10 1n2n = nC0 + nC1 + nC2 + ....... + nCn-1 + nCn
Below is implementation of this approach:  
C++
Java
Python3
C#
PHP
Javascript
// CPP Program to find sum of Binomial// Coefficient.#include <bits/stdc++.h>using namespace std; // Returns value of Binomial Coefficient Sum// which is 2 raised to power n.int binomialCoeffSum(int n){    return (1 << n);} /* Driver program to test above function*/int main(){    int n = 4;    printf("%d", binomialCoeffSum(n));    return 0;}
// Java Program to find sum// of Binomial Coefficient.import java.io.*; class GFG{    // Returns value of Binomial    // Coefficient Sum which is    // 2 raised to power n.    static int binomialCoeffSum(int n)    {        return (1 << n);    }     // Driver Code    public static void main (String[] args)    {        int n = 4;        System.out.println(binomialCoeffSum(n));    }} // This code is contributed// by akt_mit.
# Python  Program to find the sum# of Binomial Coefficient.  import math    # Returns value of Binomial# Coefficient Sumdef binomialCoeffSum( n):         return (1 << n); # Driver program to test# above functionn = 4print(binomialCoeffSum(n)) # This code is contributed# by Gitanjali.
// C# Program to find sum of// Binomial Coefficient.using System; class GFG {     // Returns value of Binomial Coefficient Sum    // which is 2 raised to power n.    static int binomialCoeffSum(int n)    {        return (1 << n);    }     /* Driver program to test above function*/    static public void Main()    {        int n = 4;        Console.WriteLine(binomialCoeffSum(n));    }} // This code is contributed by vt_m.
<?php// PHP Program to find sum// of Binomial Coefficient. // Returns value of Binomial// Coefficient Sum which is// 2 raised to power n.function binomialCoeffSum($n){    return (1 << $n);} // Driver Code$n = 4;echo binomialCoeffSum($n); // This code is contributed// by akt_mit?>
<script>    // Javascript Program to find sum of Binomial Coefficient.         // Returns value of Binomial Coefficient Sum    // which is 2 raised to power n.    function binomialCoeffSum(n)    {        return (1 << n);    }         let n = 4;      document.write(binomialCoeffSum(n));     </script>
Output:  
16
 
jit_t
nidhi_biet
cidacoder
sanjoy_62
rameshtravel07
binomial coefficient
Combinatorial
Mathematical
Mathematical
Combinatorial
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python program to get all subsets of given size of a set
Find all distinct subsets of a given set using BitMasking Approach
Heap's Algorithm for generating permutations
Print all distinct permutations of a given string with duplicates
Make all combinations of size k
Set in C++ Standard Template Library (STL)
C++ Data Types
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples