zoukankan      html  css  js  c++  java
  • 二项式定理与组合数

    求组合数(c(m,n))

     

    定义:从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号c(n,m) 表示。

    性质:c(n,m)=c(n,n-m);  c(n,0)=1;

    递推公式:c(n,m)=c(n-1,m-1)+c(n-1,m)


    C(n+1,m)=c(n,m-1)+c(n,m)=c(n,m-1)+c(n-1,m)+c(n-1,m-1);


    C(n,0)+c(n,1)+c(n,2)+……+c(n,m)=c(n+m+1,n);


    C(n,n)+c(n+1,n)+c(n+2,n)+……+c(n+m,n)=c(n+m+1,m+1);


    C(n,0)+c(n,1)+c(n,2)+……+c(n,n)=2^n;

    简单的组合:

    #include<iostream>
    using namespace std;
    long long com(int M,int N)
    {
    int sum=1;
    int m=1;
    for(int i=N;i>=M;i--)
    {
    if(m<=M)
    {
       sum=sum*i/m;
       m++;
    }
    }
    return sum;
    }
    int main()
    {
    int N,M;
    while(cin>>M>>N)
    {
    cout<<com(M,N)<<endl;
    }

     二项式

    一、必记知识精选

    1.二项式定理:(a+b)n=Can+Can-1b+…+Can-rbr+…+Cbn(n∈N*)

    2.通项公式:Tr+1=Can-rbr

    3.二项式系数性质:

    (1)距两端等距离的二项式系数相等,即C=C.

    (2)二项式系数的中间项或中间两项的二项式系数最大.

    当n为偶数时,中间一项(即第+1项)的二项式系数最大;

    当n为奇数时,中间两项(即第和第+1项)的二项式系数最大.

    (3)在二项展开式中各项的二项式系数和为2n,即:

    C+C+C+…+C=2n.

    (4)在二项展开式中,奇数项二项式系数的和等于偶数项二项式系数的和,都等于2n-1,即

    C+C+C+…=C+C+C+…=2n-1.

    #include       <map>
    #include       <set>
    #include     <ctime>
    #include     <cmath>
    #include     <queue>
    #include     <stack>
    #include    <cstdio>
    #include    <vector>
    #include   <cstring>
    #include   <cstdlib>
    #include  <iostream>
    #include <algorithm>
    using namespace std;
    /***********************分割线***********************/
    const int Mod=10007;
    
    int f[Mod];
    int main()
    {
        int a,b,k,n,m;
        scanf("%d%d%d%d%d",&a,&b,&k,&n,&m);
        a%=Mod;
        b%=Mod;
        int x=1;
        for (int i=0; i<n; i++)
        {
            x*=a;
            x%=Mod;
        }//
        int y=1;
        for (int i=0; i<m; i++)
        {
            y*=b;
            y%=Mod;
        }
        f[1]=1;
        
        for (int i=2; i<=k+1; i++)
            for (int j=i; j>=2; j--)
            {
                f[j]+=f[j-1];
                f[j]%=Mod;
            }
        printf("%d",x*y%Mod*f[m+1]%Mod);
    
        return 0;
    }
  • 相关阅读:
    leetcode53. Maximum Subarray(动态规划)
    MinGW中没有gdb.exe解决办法
    POJ
    POJ 3614 (贪心)
    bzoj 1057 (悬线法求最大子矩阵)
    bzoj1 218 激光炸弹(二位前缀和)
    POJ 2299(归并求逆序对)
    HDU 1394(归并求逆序对)
    POJ1523 Targin求关节点
    HDU6299 贪心
  • 原文地址:https://www.cnblogs.com/voldemorte/p/7238686.html
Copyright © 2011-2022 走看看