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;
    }
  • 相关阅读:
    搭建无线漫游网络及需要注意的问题
    手机如何借用笔记本网络上网
    VM下Linux网卡丢失(pcnet32 device eth0 does not seem to be ...)解决方案
    安装VMware vCenter过程设置数据库方法
    无法连接vCenter Server清单https://IP:10443
    ESXi控制台TSM:弥补vSphere Client不足
    Shell中逻辑判断
    bash 编程中循环语句用法
    Shell中IFS用法
    Shell中的${},##和%%的使用
  • 原文地址:https://www.cnblogs.com/voldemorte/p/7238686.html
Copyright © 2011-2022 走看看