栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

求组合数(动态规划)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

求组合数(动态规划)

如题:通过动态规划的方法求解排列组合中组合数

原理:

  • 状态转移方程

直接照搬原理:

  • 初始条件

没有东西且什么都不选,也是一种选择:

具体实现:

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++组合数

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号