Java教程

组合数学(递推)

本文主要是介绍组合数学(递推),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

组合数学公式

在这里插入图片描述

组合数学性质

在这里插入图片描述

组合数学递推性质

在这里插入图片描述

我们利用组合数学递推公式,建立一个数组a那么可以得出:a(i,j)=a(i-1,j-1)+a(a-1,j)
在初始化时a(0,0)=1 (利用组合数学公式0!=1)
通过双层for循环可以推出Cnm

代码实现

f[0][0]=1;
    for(int i=1;i<=1e4;i++)//注意i从1开始
    {
        for(int j=0;j<=100;j++) //注意j从0开始
        {
            f[i][j]=(f[i-1][j-1]+f[i-1][j])%1000; //一般组合数会很大,通常配合取模运算
        }
    }//对于n和m要根据不同问题进而选取不同的n和m,样例为n=1e4,m=100

洛谷组合数例题
这是一道关于组合数的例题,大家可以跑一跑!

这篇关于组合数学(递推)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!