我们利用组合数学递推公式,建立一个数组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
洛谷组合数例题
这是一道关于组合数的例题,大家可以跑一跑!