Sum of product of consecutive Binomial Coefficients

Given a positive ineteger n. The task is to find the sum of product of consecutive binomial coefficient i.e
nC0*nC1 + nC1*nC2 + ….. + nCn-1*nCn

Examples:

Input : n = 3
Output : 15
3C0*3C1 + 3C1*3C2 +3C2*3C3
= 1*3 + 3*3 + 3*1
= 3 + 9 + 3
= 15

Input : n = 4
Output : 56

Method 1: The idea is to find all the binomial coefficients up to nth term and find the sum of the product of consecutive coefficients.

Below is the implementation of this approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP Program to find sum of product of
// consecutive Binomial Coefficient.
#include <bits/stdc++.h>
using namespace std;
#define MAX 100
  
// Find the binomial coefficient upto nth term
void binomialCoeff(int C[], int n)
{
    C[0] = 1; // nC0 is 1
  
    for (int i = 1; i <= n; i++) {
  
        // Compute next row of pascal triangle using
        // the previous row
        for (int j = min(i, n); j > 0; j--)
            C[j] = C[j] + C[j - 1];
    }
}
  
// Return the sum of the product of
// consecutive binomial coefficient.
int sumOfproduct(int n)
{
    int sum = 0;
    int C[MAX] = { 0 };
  
    binomialCoeff(C, n);
  
    // finding the sum of product of 
    // consecutive coefficient.
    for (int i = 0; i <= n; i++) 
        sum += C[i] * C[i + 1];    
  
    return sum;
}
  
// Driven Program
int main()
{
    int n = 3;
    cout << sumOfproduct(n) << endl;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program to find sum of product of
// consecutive Binomial Coefficient.
  
import java.io.*;
  
class GFG {
     
static int  MAX = 100;
  
// Find the binomial coefficient upto nth term
static void binomialCoeff(int C[], int n)
{
    C[0] = 1; // nC0 is 1
  
    for (int i = 1; i <= n; i++) {
  
        // Compute next row of pascal triangle using
        // the previous row
        for (int j = Math.min(i, n); j > 0; j--)
            C[j] = C[j] + C[j - 1];
    }
}
  
// Return the sum of the product of
// consecutive binomial coefficient.
static int sumOfproduct(int n)
{
    int sum = 0;
    int C[] = new int[MAX];
  
    binomialCoeff(C, n);
  
    // finding the sum of product of 
    // consecutive coefficient.
    for (int i = 0; i <= n; i++) 
        sum += C[i] * C[i + 1]; 
  
    return sum;
}
  
// Driven Program
  
    public static void main (String[] args) {
    int n = 3;
    System.out.println( sumOfproduct(n));
    }
}
   
// This code is contributed by inder_verma..

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 Program to find sum of product 
# of consecutive Binomial Coefficient.
MAX = 100;
  
# Find the binomial coefficient upto 
# nth term
def binomialCoeff(C, n):
  
    C[0] = 1; # nC0 is 1
  
    for i in range(1, n + 1):
  
        # Compute next row of
        # pascal triangle using
        # the previous row
        for j in range(min(i, n), 0, -1):
            C[j] = C[j] + C[j - 1];
      
    return C;
  
# Return the sum of the product of 
# consecutive binomial coefficient.
def sumOfproduct(n):
  
    sum = 0;
    C = [0] * MAX;
  
    C = binomialCoeff(C, n);
  
    # finding the sum of 
    # product of consecutive
    # coefficient.
    for i in range(n + 1): 
        sum += C[i] * C[i + 1]; 
  
    return sum;
  
# Driver Code
n = 3;
print(sumOfproduct(n));
  
# This code is contributed by mits

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Program to find sum of 
// product of consecutive
// Binomial Coefficient.
using System;
  
class GFG 
{
static int MAX = 100;
  
// Find the binomial coefficient
// upto nth term
static void binomialCoeff(int []C, int n)
{
    C[0] = 1; // nC0 is 1
  
    for (int i = 1; i <= n; i++) 
    {
  
        // Compute next row of pascal 
        // triangle using the previous row
        for (int j = Math.Min(i, n); 
                 j > 0; j--)
            C[j] = C[j] + C[j - 1];
    }
}
  
// Return the sum of the product of
// consecutive binomial coefficient.
static int sumOfproduct(int n)
{
    int sum = 0;
    int []C = new int[MAX];
  
    binomialCoeff(C, n);
  
    // finding the sum of product of 
    // consecutive coefficient.
    for (int i = 0; i <= n; i++) 
        sum += C[i] * C[i + 1]; 
  
    return sum;
}
  
// Driven Code
public static void Main ()
{
    int n = 3;
    Console.WriteLine(sumOfproduct(n));
}
}
  
// This code is contributed by anuj_67

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP Program to find sum 
// of product of consecutive
// Binomial Coefficient.
$MAX = 100;
  
// Find the binomial
// coefficient upto 
// nth term
function binomialCoeff($C, $n)
{
    $C[0] = 1; // nC0 is 1
  
    for ($i = 1; 
         $i <= $n; $i++)
    {
  
        // Compute next row of
        // pascal triangle using
        // the previous row
        for ($j = min($i, $n); 
             $j > 0; $j--)
            $C[$j] = $C[$j] +
                     $C[$j - 1];
    }
    return $C;
}
  
// Return the sum of the 
// product of consecutive 
// binomial coefficient.
function sumOfproduct($n)
{
    global $MAX;
    $sum = 0;
    $C = array_fill(0, $MAX, 0);
  
    $C = binomialCoeff($C, $n);
  
    // finding the sum of 
    // product of consecutive
    // coefficient.
    for ($i = 0; $i <= $n; $i++) 
        $sum += $C[$i] * $C[$i + 1]; 
  
    return $sum;
}
  
// Driver Code
$n = 3;
echo sumOfproduct($n);
  
// This code is contributed by mits
?>

chevron_right



Output

15

Method 2:
We know,
(1 + x)n = nC0 + nC1*x + nC2*x2 + …. + nCn*xn … (1)

(1 + 1/x)n = nC0 + nC1/x + nC2/x2 + …. + nCn/xn … (2)

Multiplying (1) and (2), we get
(1 + x)2n/xn = (nC0 + nC1*x + nC2*x2 + …. + nCn*xn) * (nC0 + nC1/x + nC2/x2 + …. + nCn/xn)

(2nC0 + 2nC1*x + 2nC2*x2 + …. + 2nCn*xn)/xn = (nC0 + nC1*x + nC2*x2 + …. + nCn*xn) * (nC0 + nC1/x + nC2/x2 + …. + nCn/xn)

Now, find the coefficient of x in LHS,
Observe rth term of expansion in numerator is 2nCrxr.
To find the coefficient of x in (1 + x)2n/xn, r should be n + 1, because power of x in denominator will reduce it.
So, coefficient of x in LHS = 2nCn + 1 or 2nCn – 1

Now, find the coefficient of x in RHS,
r th term of first expansion of multiplication is nCr * xr
t th term of second expansion of multiplication is nCt / xt
So term after multiply will be nCr * xr * nCt / xt or
nCr * nCt * xr / xt
Put r = t + 1, we get,
nCt+1 * nCt * x
Observe there will be n such term in the expansion of multiply, so t range from 0 to n – 1.
Therefor, coefficient of x in RHS = nC0*nC1 + nC1*nC2 + ….. + nCn-1*nCn

Comparing coefficient of x in LHS and RHS, we can say,
nC0*nC1 + nC1*nC2 + ….. + nCn-1*nCn = 2nCn – 1

Below is implementation of this approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP Program to find sum of product of 
// consecutive Binomial Coefficient.
#include <bits/stdc++.h>
using namespace std;
#define MAX 100
  
// Find the binomial coefficient up to nth 
// term
int binomialCoeff(int n, int k)
{
    int C[k + 1];
    memset(C, 0, sizeof(C));
  
    C[0] = 1; // nC0 is 1
  
    for (int i = 1; i <= n; i++) {
  
        // Compute next row of pascal triangle 
        // using the previous row
        for (int j = min(i, k); j > 0; j--)
            C[j] = C[j] + C[j - 1];
    }
    return C[k];
}
  
// Return the sum of the product of
// consecutive binomial coefficient.
int sumOfproduct(int n)
{
    return binomialCoeff(2 * n, n - 1);
}
  
// Driven Program
int main()
{
    int n = 3;
  
    cout << sumOfproduct(n) << endl;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program to find sum of 
// product of consecutive 
// Binomial Coefficient.
import java.io.*;
  
class GFG 
{
    static int MAX = 100;
      
    // Find the binomial coefficient 
    // up to nth term
    static int binomialCoeff(int n, 
                             int k)
    {
        int C[] = new int[k + 1];
          
        // memset(C, 0, sizeof(C));
        C[0] = 1; // nC0 is 1
  
        for (int i = 1; i <= n; i++) 
        {
  
            // Compute next row of 
            // pascal triangle 
            // using the previous row
            for (int j = Math.min(i, k); j > 0; j--)
                C[j] = C[j] + C[j - 1];
    }
      
    return C[k];
}
  
// Return the sum of the 
// product of consecutive
// binomial coefficient.
static int sumOfproduct(int n)
{
    return binomialCoeff(2 * n, 
                         n - 1);
}
  
// Driver Code
public static void main (String[] args) 
{
    int n = 3;
    System.out.println(sumOfproduct(n));
}
}
  
// This code is contributed
// by shiv_bhakt.

chevron_right


Python3

# Python3 Program to find sum of product
# of consecutive Binomial Coefficient.
MAX = 100;

# Find the binomial coefficient
# up to nth term
def binomialCoeff(n, k):

C = [0] * (k + 1);

C[0] = 1; # nC0 is 1

for i in range(1, n + 1):

# Compute next row of pascal triangle
# using the previous row
for j in range(min(i, k), 0, -1):
C[j] = C[j] + C[j – 1];
return C[k];

# Return the sum of the product of
# consecutive binomial coefficient.
def sumOfproduct(n):
return binomialCoeff(2 * n, n – 1);

# Driver Code
n = 3;
print(sumOfproduct(n));

# This code is contributed by mits

C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Program to find sum of 
// product of consecutive 
// Binomial Coefficient.
using System;
  
class GFG
{
      
    // Find the binomial 
    // coefficient up to 
    // nth term
    static int binomialCoeff(int n, 
                             int k)
    {
        int []C = new int[k + 1];
          
        // memset(C, 0, sizeof(C));
        C[0] = 1; // nC0 is 1
  
        for (int i = 1; i <= n; i++) 
        {
  
            // Compute next row of 
            // pascal triangle 
            // using the previous row
            for (int j = Math.Min(i, k); 
                             j > 0; j--)
                C[j] = C[j] + C[j - 1];
    }
      
    return C[k];
}
  
// Return the sum of the 
// product of consecutive
// binomial coefficient.
static int sumOfproduct(int n)
{
    return binomialCoeff(2 * n, 
                         n - 1);
}
  
// Driver Code
static public void Main ()
{
    int n = 3;
    Console.WriteLine(sumOfproduct(n));
}
}
  
// This code is contributed
// by @ajit.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP Program to find sum of product of 
// consecutive Binomial Coefficient.
$MAX = 100;
  
// Find the binomial coefficient 
// up to nth term
function binomialCoeff($n, $k)
{
    $C = array_fill(0, ($k + 1), 0);
  
    $C[0] = 1; // nC0 is 1
  
    for ($i = 1; $i <= $n; $i++) 
    {
  
        // Compute next row of pascal triangle 
        // using the previous row
        for ($j = min($i, $k); $j > 0; $j--)
            $C[$j] = $C[$j] + $C[$j - 1];
    }
    return $C[$k];
}
  
// Return the sum of the product of
// consecutive binomial coefficient.
function sumOfproduct($n)
{
    return binomialCoeff(2 * $n, $n - 1);
}
  
// Driver Code
$n = 3;
echo sumOfproduct($n);
  
// This code is contributed by mits
?>

chevron_right


Output:

15


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.