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

📅  最后修改于: 2021-05-04 16:24:17             🧑  作者: 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(蛮力):想法是将循环i从0迭代到n,并评估i * n C i并加和求和变量。
以下是此方法的实现:

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 cR = 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.

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


Java脚本


输出:
4