📜  r 和 rth 二项式系数的乘积之和 (r * nCr)

📅  最后修改于: 2021-09-17 07:43:38             🧑  作者: Mango

给定一个正整数n 。任务是找到 r 和 r th二项式系数的乘积之和。换句话说,找到: Σ (r * n C r ) ,其中 0 <= r <= n。
例子:

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

Input : n = 5
Output : 80

方法 1(蛮力):想法是从 0 到 n 迭代循环 i 并评估 i * n C i并添加到 sum 变量。
下面是这个方法的实现:

C++
// CPP Program to find sum of product of r and
// rth Binomial Coefficient i.e summation r * nCr
#include 
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
 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


C++
// CPP Program to find sum of product of r and
// rth Binomial Coefficient i.e summation r * nCr
#include 
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


Javascript


输出:
4

方法2(使用公式):
在数学上我们需要找到,
Σ (i * n C i ),其中 0 <= i <= n
= Σ ( i C 1 * n C i ), (由于n C 1 = n,我们可以将 i 写为i C 1 )
= Σ((i!/(i – 1)!* 1!)*(n!/(n – i)!* i!)
在取消我!从分子和分母
= Σ (n! / (i – 1)! * (n – i)!)
= Σ n * ((n – 1)!/ (i – 1)! * (n – i)!)
(使用反向n C r = (n)!/ (r)! * (n – r)!)
= n * Σ n – 1 C r – 1
= n * 2 n – 1 (因为 Σ n C r = 2 n )
下面是这个方法的实现:

C++

// CPP Program to find sum of product of r and
// rth Binomial Coefficient i.e summation r * nCr
#include 
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.

蟒蛇3

# 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


Javascript


输出:
4

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程