如题:通过动态规划的方法求解排列组合中组合数
原理:
- 状态转移方程
直接照搬原理:
- 初始条件
没有东西且什么都不选,也是一种选择:
具体实现:
int f[1000][1000]; int format(int n, int m)//n>m { //1、什么都不选视为一种方法 //2、全选视为一种方法 if (n == 0 || n == m) { return 1; } f[0][0] = 1;//初始条件 for (int i = 0; i <= m; i++)// { f[i][i] = 1; for (int j = i + 1; j <= n; j++)//排列组合中的n应大于m 所以取i+1 { if (i == 0) f[j][i] = 1; else f[j][i] = f[j - 1][i] + f[j - 1][i - 1]; } } return f[n][m]; }
参考博客地址:
(31条消息) C++ 计算组合数(动态规划)_ChanJose的博客-CSDN博客_c++组合数