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> |
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> |
4
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!