计算机算法设计与分析 第5版 (王晓东) 课后答案[解析]
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈
《计算机算法设计与分析(第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
- 收藏
- 分享
- 文章举报
- 循环赛日程表(计算机算法设计与分析 --王晓东) 2.11
- 分治的算法复杂度计算(计算机算法设计与分析--王晓东)
- 计算机算法设计与分析之棋盘覆盖问题
- 计算机算法设计与分析之棋盘覆盖问题
- Dijkstra(计算机算法设计与分析4.5)
- “计算机算法设计与分析”期末考点以及应试思路-D_Dan
- 算法分析与设计课程资料:蚂蚁算法的初步研究与计算机模拟
- 计算机算法设计与分析之不定期更新的日常+动态规划矩阵连乘+最长公共子序列
- 软件工程入门学习之系统分析与设计-敏捷迭代方法之学习笔记+系统分析与设计课后习题答案
- 【算法】算法设计与分析试题(含答案)
- 回溯例题(计算机算法设计与分析)
- 计算机算法设计与分析--递归与分治策略(一)
- 计算机算法设计与分析--动态规划(二)
- 计算机算法的设计与分析
- 计算机算法设计与分析
- 线性时间选择 python实现 计算机算法设计与分析
- 数据结构之第二章 算法分析总结 及 课后题答案
- 计算机算法分析设计第一课笔记
- 计算机算法设计与分析作业01:分治法求解大数乘法+L型骨牌的棋盘覆盖问题
- 计算机算法设计与分析观后小总结