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

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 * nCrint 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 Programint 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 * nCrclass 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 * nCrstatic 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 Codepublic 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 * nCrMAX = 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 * nCrdef 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 Codeif __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 * nCrusing 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 * nCrstatic 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 Codepublic 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 * nCrfunction 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 * nCrint summation(int n){ return n << (n - 1);}// Driven Programint 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 * nCrimport 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 * nCrdef summation( n): return n << (n - 1);# Driver Coden = 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 * nCrusing 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 * nCrfunction 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 zambiatek!



