Open In App

Sum of product of r and rth Binomial Coefficient (r * nCr)

Improve
Improve
Like Article
Like
Save
Share
Report

Given a positive integer n. The task is to find the sum of the product of r and rth Binomial Coefficient. In other words find: ? (r * nCr), where 0 <= r <= n.
Examples: 
 

Input : n = 2
Output : 4
0.2C0 + 1.2C1 + 2.2C2
= 0*2 + 1*2 + 2*1
= 4

Input : n = 5
Output : 80

 

Method 1 (Brute Force) : The idea is to iterate a loop i from 0 to n and evaluate i * nCi and add to sum variable.
Below is the implementation of this approach: 
 

C++




// CPP Program to find sum of product of r and
// rth Binomial Coefficient i.e summation r * nCr
#include <bits/stdc++.h>
using namespace std;
#define MAX 100
 
// Return the first n term of binomial coefficient.
void binomialCoeff(int n, int 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, n); j > 0; j--)
            C[j] = C[j] + C[j - 1];
    }
}
 
// Return summation of r * nCr
int summation(int n)
{
    int C[MAX];
    memset(C, 0, sizeof(C));
 
    // finding the first n term of binomial
    // coefficient
    binomialCoeff(n, C);
 
    // Iterate a loop to find the sum.
    int sum = 0;
    for (int i = 0; i <= n; i++)
        sum += (i * C[i]);   
 
    return sum;
}
 
// Driven Program
int main()
{
    int n = 2;
    cout << summation(n) << endl;
    return 0;
}


Java




// Java Program to find sum
// of product of r and rth
// Binomial Coefficient i.e
// summation r * nCr
class GFG
{
static int MAX = 100;
 
// Return the first n term
// of binomial coefficient.
static void binomialCoeff(int n,
                          int 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, n); j > 0; j--)
            C[j] = C[j] + C[j - 1];
    }
}
 
// Return summation
// of r * nCr
static int summation(int n)
{
    int C[] = new int[MAX];
     
    for(int i = 0; i < MAX; i++)
    C[i] = 0;
 
    // finding the first n term 
    // of binomial coefficient
    binomialCoeff(n, C);
 
    // Iterate a loop
    // to find the sum.
    int sum = 0;
    for (int i = 0; i <= n; i++)
        sum += (i * C[i]);
 
    return sum;
}
 
// Driver Code
public static void main(String args[])
{
    int n = 2;
    System.out.println( summation(n));
}
}
 
// This code is contributed by Arnab Kundu


Python 3




# Python 3 Program to find sum of product
# of r and rth Binomial Coefficient i.e
# summation r * nCr
MAX = 100
 
# Return the first n term of
# binomial coefficient.
def binomialCoeff(n, C):
 
    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), -1, -1):
            C[j] = C[j] + C[j - 1]
 
# Return summation of r * nCr
def summation( n):
 
    C = [0] * MAX
 
    # finding the first n term of
    # binomial coefficient
    binomialCoeff(n, C)
 
    # Iterate a loop to find the sum.
    sum = 0
    for i in range(n + 1):
        sum += (i * C[i])
 
    return sum
 
# Driver Code
if __name__ == "__main__":
     
    n = 2
    print(summation(n))
 
# This code is contributed by ita_c


C#




// C# Program to find sum
// of product of r and rth
// Binomial Coefficient i.e
// summation r * nCr
using System;
 
class GFG
{
static int MAX = 100;
 
// Return the first n term
// of binomial coefficient.
static void binomialCoeff(int n,
                          int []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, n);
                 j > 0; j--)
            C[j] = C[j] + C[j - 1];
    }
}
 
// Return summation
// of r * nCr
static int summation(int n)
{
    int []C = new int[MAX];
     
    for(int i = 0; i < MAX; i++)
    C[i] = 0;
 
    // finding the first n term
    // of binomial coefficient
    binomialCoeff(n, C);
 
    // Iterate a loop
    // to find the sum.
    int sum = 0;
    for (int i = 0; i <= n; i++)
        sum += (i * C[i]);
 
    return sum;
}
 
// Driver Code
public static void Main()
{
    int n = 2;
    Console.Write( summation(n));
}
}
 
// This code is contributed
// by shiv_bhakt


PHP




<?php
// PHP Program to find sum of product
// of r and rth Binomial Coefficient
// i.e summation r * nCr
$MAX = 100;
 
// Return the first n term of
// binomial coefficient.
function binomialCoeff($n, &$C)
{
    $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 summation of r * nCr
function summation($n)
{
    global $MAX;
    $C = array_fill(0, $MAX, 0);
 
    // finding the first n term of
    // binomial coefficient
    binomialCoeff($n, $C);
 
    // Iterate a loop to find the sum.
    $sum = 0;
    for ($i = 0; $i <= $n; $i++)
        $sum += ($i * $C[$i]);
 
    return $sum;
}
 
// Driver Code
$n = 2;
echo summation($n);
 
// This code is contributed by mits
?>


Javascript




<script>
 
    // Javascript Program to find sum of product of r and
    // rth Binomial Coefficient i.e summation r * nCr
    MAX = 100
 
    // Return the first n term of binomial coefficient.
    function binomialCoeff(n, C) {
      C[0] = 1; // nC0 is 1
 
      for (var i = 1; i <= n; i++) {
 
        // Compute next row of pascal triangle
        // using the previous row
        for (var j = Math.min(i, n); j > 0; j--)
          C[j] = C[j] + C[j - 1];
      }
    }
 
    // Return summation of r * nCr
    function summation(n) {
      C = Array(MAX).fill(0);
 
      // finding the first n term of binomial
      // coefficient
      binomialCoeff(n, C);
 
      // Iterate a loop to find the sum.
      var sum = 0;
      for (var i = 0; i <= n; i++)
        sum += (i * C[i]);
 
      return sum;
    }
 
    // Driven Program
    var n = 2;
    document.write(summation(n));
     
    // This code is contributed by noob2000.
  </script>


Output: 

4

 

Time complexity: O(n*n)

space complexity: O(MAX)

Method 2 (Using formula) : 
Mathematically we need to find, 
? (i * nCi), where 0 <= i <= n 
= ? (iC1 * nCi), (Since nC1 = n, we can write i as iC1
= ? ( (i! / (i – 1)! * 1!) * (n! / (n – i)! * i!) 
On cancelling i! from numerator and denominator 
= ? (n! / (i – 1)! * (n – i)!) 
= ? n * ((n – 1)!/ (i – 1)! * (n – i)!) 
(Using reverse of nCr = (n)!/ (r)! * (n – r)!) 
= n * ? n – 1Cr – 1 
= n * 2n – 1 (Since ? nCr = 2n)
Below is the implementation of this approach: 
 

C++




// CPP Program to find sum of product of r and
// rth Binomial Coefficient i.e summation r * nCr
#include <bits/stdc++.h>
using namespace std;
#define MAX 100
 
// Return summation of r * nCr
int summation(int n)
{
    return n << (n - 1);
}
 
// Driven Program
int main()
{
    int n = 2;
    cout << summation(n) << endl;
    return 0;
}


Java




// Java Program to find sum of product of
// r and rth Binomial Coefficient i.e
// summation r * nCr
import java.io.*;
 
class GFG {
 
    static int MAX = 100;
     
    // Return summation of r * nCr
    static int summation(int n)
    {
        return n << (n - 1);
    }
     
    // Driven Program
    public static void main (String[] args)
    {
        int n = 2;
        System.out.println( summation(n));
    }
}
 
// This code is contributed by anuj_67.


Python3




# Python3 Program to
# find sum of product
# of r and rth Binomial
# Coefficient i.e
# summation r * nCr
 
# Return summation
# of r * nCr
def summation( n):
    return n << (n - 1);
 
# Driver Code
n = 2;
print(summation(n));
 
# This code is contributed
# by mits


C#




// C# Program to find sum of product of
// r and rth Binomial Coefficient i.e
// summation r * nCr
using System;
 
class GFG {
 
    //static int MAX = 100;
     
    // Return summation of r * nCr
    static int summation(int n)
    {
        return n << (n - 1);
    }
     
    // Driver Code
    public static void Main ()
    {
        int n = 2;
        Console.WriteLine( summation(n));
    }
}
 
// This code is contributed by anuj_67.


PHP




<?php
// PHP Program to find sum
// of product of r and
// rth Binomial Coefficient
// i.e summation r * nCr
 
// Return summation of r * nCr
function summation( $n)
{
    return $n << ($n - 1);
}
 
// Driver Code
$n = 2;
echo summation($n) ;
 
// This code is contributed
// by shiv_bhakt
?>


Javascript




<script>
 
// Javascript Program to find sum of product of r and
// rth Binomial Coefficient i.e summation r * nCr
var MAX=100
 
// Return summation of r * nCr
function summation(n)
{
    return n << (n - 1);
}
 
// Driven Program
var n = 2;
document.write(summation(n));
     
</script>


Output: 

4

 

Time Complexity: O(1)

Auxiliary Space: O(1)



Last Updated : 10 Aug, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads