刘书(白书)之数论:组合和排列
2015-06-02 10:16
323 查看
10.2.1无关的元素:
一、通过尝试发现符合杨辉三角,问题转化为二项式展开系数能否被m整除
二、利用唯一分解定律以及二项式的递推公式和指数和来判断整除(不然计算系数容易溢出)
10.2.2数论中的计数问题:
10.5约数的个数:
由唯一分解定律得,n一个数字任意的正约数只能包含质因子作为他的因子,然后由指数
考虑总的情况数目
10.6小于n且与n互素的个数:
一、欧拉函数,不容易计算的模式是通过排列组合的正向推到而得的,容易计算的模式是通过排列组合逆向推导得到的
10.2.3编码与解码
10.2.4离散概率初步
1.
10.3递推关系
10.3.1汉诺塔
10.3.2斐波那契数列
10.3.3卡特兰数
应用:
1.括号化问题。
矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)
2.出栈次序问题。
一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?
类似:
(1)有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)
(2)在圆上选择2n个点,将这些点成对连接起来,使得所得到的n条线段不相交的方法数。
3.将多边行划分为三角形问题。
将一个凸多边形区域分成三角形区域的方法数?
类似:一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她
从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
类似:在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?
4.给顶节点组成二叉树的问题。
给定N个节点,能构成多少种形状不同的二叉树?
(一定是二叉树!
先去一个点作为顶点,然后左边依次可以取0至N-1个相对应的,右边是N-1到0个,两两配对相乘,就是h(0)*h(n-1) + h(2)*h(n-2) +
+ h(n-1)h(0)=h(n))
(能构成h(N)个)
10.3.4
10.3.5统计n-k特殊集的数目:
一、这里首先要确定的思路就是要递推,不要一步登天
二、(理解这里面的负数处理的时候p209页最上面一行的“f作为边界”看清楚是指k<0时,不要脑补)
三、动态判断边界技术,结合辅助函数
四、宏定义解决少量负数下边
一、通过尝试发现符合杨辉三角,问题转化为二项式展开系数能否被m整除
二、利用唯一分解定律以及二项式的递推公式和指数和来判断整除(不然计算系数容易溢出)
10.2.2数论中的计数问题:
10.5约数的个数:
由唯一分解定律得,n一个数字任意的正约数只能包含质因子作为他的因子,然后由指数
考虑总的情况数目
10.6小于n且与n互素的个数:
一、欧拉函数,不容易计算的模式是通过排列组合的正向推到而得的,容易计算的模式是通过排列组合逆向推导得到的
10.2.3编码与解码
10.2.4离散概率初步
1.
10.3递推关系
10.3.1汉诺塔
10.3.2斐波那契数列
10.3.3卡特兰数
应用:
1.括号化问题。
矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)
2.出栈次序问题。
一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?
类似:
(1)有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)
(2)在圆上选择2n个点,将这些点成对连接起来,使得所得到的n条线段不相交的方法数。
3.将多边行划分为三角形问题。
将一个凸多边形区域分成三角形区域的方法数?
类似:一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她
从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?
类似:在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?
4.给顶节点组成二叉树的问题。
给定N个节点,能构成多少种形状不同的二叉树?
(一定是二叉树!
先去一个点作为顶点,然后左边依次可以取0至N-1个相对应的,右边是N-1到0个,两两配对相乘,就是h(0)*h(n-1) + h(2)*h(n-2) +
+ h(n-1)h(0)=h(n))
(能构成h(N)个)
10.3.4
10.3.5统计n-k特殊集的数目:
一、这里首先要确定的思路就是要递推,不要一步登天
二、(理解这里面的负数处理的时候p209页最上面一行的“f作为边界”看清楚是指k<0时,不要脑补)
三、动态判断边界技术,结合辅助函数
四、宏定义解决少量负数下边
相关文章推荐
- Listview的适配器封装
- crontab 指定执行用户
- Cisco OSPF常见问题
- PowerShell在控制台输出特殊符号的方法
- Python 正则表达式操作指南
- rtmp流媒体编程相关整理2013(crtmpserver,rtmpdump,x264,faac)
- ftp和tftp区别
- js与bootstrap标签页冲突
- crontab定时运行git命令 更新代码库
- 未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序
- BIT_COUNT()&BIT_OR()
- oracle 开机自动启动
- 面试常见问题:如何加密Web项目中配置文件中的密码?
- TreeView 循环加载数据
- 使用git代替FTP部署代码到服务器的例子
- C# 数据结构
- 堆栈、栈针
- 5月国内网站流量统计TOP5:淘宝险胜搜狗获季军
- PDF合同模板项目----问题列表
- redis之RDB持久化策略