您的位置:首页 > 理论基础

计算机算法设计与分析 第5版 (王晓东) 课后答案[解析]

2020-04-22 08:01 4891 查看

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 

《计算机算法设计与分析(第3版)》为普通高等教育“十一五”国家级规划教材,是计算机专业核心课程“算法设计与分析”教材。全书以算法设计策略为知识单元,系统介绍计算机算法的设计方法与分析技巧。主要内容包括:算法概述、递归与分治策略、动态规划、贪心算法、回溯法、分支限界法、随机化算法、线性规划与网络流、NP完全性理论与近似算法等。书中既涉及经典与实用算法及实例分析,又包括算法热点领域追踪。

 

【2-8】集合划分问题(给定要分成几个集合)

 

´问题描述:
n 个元素的集合{1,2,, n }可以划分为若干个非空子集。例如,当 n=4 时,集合{1,2,
3,4}可以划分为 15 个不同的非空子集如下:
{{1},{2},{3},{4}},
{{1,2},{3},{4}},
{{1,3},{2},{4}},
{{1,4},{2},{3}},
{{2,3},{1},{4}},
{{2,4},{1},{3}},
{{3,4},{1},{2}},
{{1,2},{3,4}},
{{1,3},{2,4}},
{{1,4},{2,3}},
{{1,2,3},{4}},
{{1,2,4},{3}},
{{1,3,4},{2}},
{{2,3,4},{1}},
{{1,2,3,4}}
其中,集合{{1,2,3,4}}由 1 个子集组成;集合{{1,2},{3,4}},{{1,3},{2,
4}},{{1,4},{2,3}},{{1,2,3},{4}},{{1,2,4},{3}},{{1,3,4},{2}},{{2,
3,4},{1}}由 2 个子集组成;集合{{1,2},{3},{4}},{{1,3},{2},{4}},{{1,4},
{2},{3}},{{2,3},{1},{4}},{{2,4},{1},{3}},{{3,4},{1},{2}}由 3 个子集组
成;集合{{1},{2},{3},{4}}由 4 个子集组成。
´编程任务:
给定正整数 n 和 m,计算出 n 个元素的集合{1,2,, n }可以划分为多少个不同的由 m 个
非空子集组成的集合。
´数据输入:
由文件 input.txt 提供输入数据。文件的第 1 行是元素个数 n 和非空子集数 m。
´结果输出:
程序运行结束时,将计算出的不同的由m个非空子集组成的集合数输出到文件output.txt
中。
输入文件示例 输出文件示例
input.txt output.txt
4 3 6

【题解】


这是第二类Stirling数。
递推公式f
[m] = f[n-1][m-1]+m*f[n-1][m]
f[0][0] = 1;

【代码】

[code]#include <cstdio>
using namespace std;

const int N = 100;

long long f[N+10][N+10];

int main(){
f[0][0] = 1;
for (int i = 1;i <= N;i++)
for (int j = 1;j <= i;j++){
f[i][j] = f[i-1][j-1]+j*f[i-1][j];
}
while (1){
int n,m;
scanf("%d%d",&n,&m);
printf("%I64d\n",f
[m]);
}
return 0;
}

电子书分享网盘:

我研究生阶段的算法课用书,详细的讲解了常用的递归法、分治法、回溯法、动态规划法、贪心法等,并进一步探讨了算法的NP完全理论。这是一本非常经典的算法课用书。

链接:https://pan.baidu.com/s/1fjOGtGfYrYy0t0c5Gxhg8w

提取码:pg89

复制这段内容后打开百度网盘手机App,操作更方便哦

附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读/书籍书单大全:

(点击右侧 即可打开个人博客内有干货):技术干货小栈
=====>>①【Java大牛带你入门到进阶之路】<<====
=====>>②【算法数据结构+acm大牛带你入门到进阶之路】<<===
=====>>③【数据库大牛带你入门到进阶之路】<<=====
=====>>④【Web前端大牛带你入门到进阶之路】<<====
=====>>⑤【机器学习和python大牛带你入门到进阶之路】<<====
=====>>⑥【架构师大牛带你入门到进阶之路】<<=====
=====>>⑦【C++大牛带你入门到进阶之路】<<====
=====>>⑧【ios大牛带你入门到进阶之路】<<====
=====>>⑨【Web安全大牛带你入门到进阶之路】<<=====
=====>>⑩【Linux和操作系统大牛带你入门到进阶之路】<<=====

天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。

  • 点赞 6
  • 收藏
  • 分享
  • 文章举报
qq_43567795 发布了4 篇原创文章 · 获赞 7 · 访问量 490 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: