当前课程知识点:组合数学 > 初识母函数 > 母函数的简单应用 > 母函数的简单应用(2)
下面呢我们来分析一下
有关整数的拆分
比如说我们在说任意一个十进制数
我们也可以把它拆分成12345进行相加
所以我们看一下下面一道例题
对于一个整数n
我们要拆分成1 2 3 4一直到m那个数的和
并且允许它们重复
那么该如何用母函数来表达呢
所以我们在计算将n拆分成1 2 3 4 5 6
一直到m的和的时候
我们需要用1的母函数乘以2的母函数
依次累乘
这时候我们进行约减的时候
我们发现其实1加x 加x的平方
可以直接用类似的它的展开式进行合并
1加x 加x的平方 就等于1减x分之一
所以每一项都可以类似的写成这样的分式
最终G(x)变成了1减x分之一
乘以1减x的平方分之一
一直累乘到1减x的m次方分之一
我们将分母进行累乘
就得到了G(x)就等于这样一个式子
当然具体的展开我们就在这里面
不继续展开了
我们把这个问题进一步的深入一下
我们想讨论如果进行拆分的时候
其中m至少要出现一次
那它的母函数该长什么样子呢
其实对于前面的数字都应该是一样的
都是1 2 但是最后对应的出现m
意味着m不可能不出现
因此 x m代表了m出现一次
x 2m次方代表m出现两次
依此类推 而x0次方也就是m出现0次
在m的这个多项式中
我们是不能出现的
对于这样一个式子
我们该如何把它进一步地抽象呢
我们这里面可以把x的m次方全部拿出来
因此前面的式子变成了1减x分之一
1减x的平方分之一
这个式子变成了xm次方除以1减x的m次方
因此这个式子就表示了
至少m要出现一次
它的母函数我们用G2来表示
这时候我们知道G2的意思说是
m至少出现一次
那是不是可以反过来讲呢
比如说我们可以说对应于拆分成
m至少出现一次的可以用全部的方案
减去m根本不出现
m根本不出现意味着
最多是拆分到m减1
因此第一个式子代表的是
1到m来进行拆分
第二个式子代表了是拆分为1到m减1
它们两个一相减之后
就代表了m至少要出现一次
那么通过这样数的组合意义就发现了
其实整数拆分成1到m的和的拆分数
减去拆分成1到m减1的和的拆分数
就是至少出现m的拆分数
其实大家最关心的整数有可能就是钱吧
那么我们来看一下钱的表现力
我们就用母函数来分析一下有关硬币的组合
我们先拿人民币来分析一下
人民币有什么样的硬币呢
我们可以看到有一毛的 有五毛的
还有一块的
那么我们就可以写出人民币的母函数
对应于有一角的 它的母函数呢
可以写成1加上x的10次方加上x的20次方
注意这里面我们每一个幂次
代表的就是一分钱
同样五角的 1加上x50次方 依此类推
一块的 1加x的100次方
那么这样的一个式子
我们通过运算它的多项式相乘
就可以计算出对应于每一个数值
它有多少种硬币的组合方式
我们通过编程呢实现了这样一个功能
我们会发现实际上对应于人民币来说
它有这样一个表现形式
那么我们就去分析一下
美元硬币表现形式如何呢
其实在美元中
最常见的硬币实际上是一毛和两毛五
他和我们的系统不一样
它并没有五毛的
它有一个两毛五的钱
这时候它的母函数长什么样
它应该是1加x10的次方 加上x20的次方
这是一毛钱的母函数
对应于一个quarter
也就是两毛五
它是1加上x的25加上x的50次方 依此类推
这时候我们来计算一下美元常用的硬币
是什么样子的呢
我们对比一下发现
实际上还是人民币的表现力更丰富一些
当然有时候我们在美国的超市
经常会看见有九毛五的这样的分数
其实在美国还有一个不太常用的
一个五分硬币
如果我们把这五分硬币
同样使用在这个母函数中
然后我们在来分析它的表现力
我们会发现五分加入之后
它们的表现力都陡然剧增
当然它的组合数会相当之多
所以我们可以看到
其实仅仅是以这样一个简单的组合问题
如果利用枚举是做不到的
但是有了母函数
我们可以非常灵活地处理这样的计数问题
-什么是组合数学
--什么是组合数学
--讨论题
-最精巧的排列——幻方
--幻方
-漫谈组合数学--最精巧的排列——幻方
-苦难的羊皮纸卷
--羊皮纸卷
-苦难的羊皮纸卷--作业
-你的手机密码安全吗
-漫谈组合数学--你的手机密码安全吗
-暴力枚举和抽象转换
--世界杯引出的问题
--世界杯引出的问题--练习
--一一对应
--七桥问题
--小结
--讨论题
-大家谈组合数学(1)
--采访武永卫老师
-第一周作业
--作业说明
--H
--U
--G
--作业讨论区说明
-第一周演示程序
--程序讨论区说明
--幻方生成器
--换方计数
--屏幕解锁方案数
--欧拉路计数
--共享程序
-加减乘除来计数
--计数的基本法则
-排列还是组合
--排列还是组合
--小乒乓球的组合之旅--排列还是组合
-各种各样的排列
--圆排列和项链排列
--圆排列和项链排列--习题
--多重排列
--多重排列--练习
-多样的组合
--可重组合
--不相邻组合
--小乒乓球的组合之旅--多样的组合
-钟声里的全排列
--钟声里的全排列
--钟声里的全排列
--字典序法
--SJT算法
-第二周作业
--H
--U
--G
--思考题
--公式测试
--作业讨论区说明
-第二周演示程序
--程序讨论区说明
--全排列生成
--组合生成器
--共享程序
-参考资料:Stirling估计式
-母函数是函数的母亲吗
--母函数的定义(1)--练习
--母函数的定义(2)--练习
-母函数的简单应用
--初识母函数--母函数的简单应用
-整数拆分
--整数拆分(1)
--整数拆分(2)
-Ferrers图像
--Ferrers图像--作业
-母函数与递推关系
--母函数能做什么
--偶数个5怎样算
--母函数小结
-大家谈组合数学(2)
-第三周作业
--H
--U
--G
--思考题
--作业讨论区说明
-第三周演示程序
--程序讨论区说明
--整数拆分
--汉诺塔
--共享程序说明
-Fibonacci数列
--线性常系数递推关系--Fibonacci数列
-Fibonacci数列的应用
--桌布魔术
--桌布魔术--练习
--艾略特波浪曲线
-线性常系数齐次递推关系
--定义
--特征多项式
--线性常系数递推关系--线性常系数齐次递推关系
-说“数”解题
-第四周作业
--H
--U
--G
--GT思考题
--作业讨论区说明
-第四周演示程序
--程序讨论区说明
--程序共享说明
-爆笑花絮
--爆笑花絮
-参考资料:K线分析中的Fibonacci 相关理论
-Catalan数
--计算机界的精灵
--神奇的序列--Catalan数
-指数型母函数
--指数型母函数
--神奇的序列--指数型母函数
-错排
--错排1
--错排2
--神奇的序列--错排
-Stirling数
--神奇的序列--Stirling数
-母函数小结
--母函数小结
-大家谈组合数学(3)
-第五周作业
--H
--U
--G
--思考题
--作业讨论区说明
-第五周演示程序
--讨论区说明
--Catalan数
--程序共享
-且容且斥
--容斥原理
--容斥原理的证明
--容斥原理和鸽巢原理--且容且斥
-容斥原理的精妙
-回忆过去,容斥新解
--容斥原理和鸽巢原理--回忆过去,容斥新解
-鸽子抢巢
--鸽巢原理
--鸽巢原理--练习
--鸽巢原理的应用(1)--练习
-看得见摸得着的鸽巢
--韩信点兵
--中国剩余定理
--容斥原理和鸽巢原理--看得见摸得着的鸽巢
-6人行和Ramsey数
--6人行
--Ramsey数
--小结
-第六周作业
--H
--U
--G
--GT
--作业讨论区说明
-第六周演示程序
--讨论区说明
--程序共享说明
-可以转的世界
--可以转的世界
--可以转的世界--练习
--伽罗华与群
--群的定义
--群的定义--练习
--群的一些概念
-置换群
--置换群
--群--置换群
--共轭类
--对换
--对换--练习
--置换群的应用
-Burnside引理
--着色问题的等价类
--Burnside引理--作业
-闲话群
-第七周作业
--H
--U
--G
--作业讨论区说明
-Burnside引理的困境
-从Burnside到Polya
--Polya定理
-立方体旋转
--立方体旋转(1)
--立方体旋转(2)
--立方体旋转--作业
--立方体旋转(3)
--立方体旋转--作业
--立方体旋转(4)
-母函数型Polya定理
--Polya定理--母函数型Polya定理
-图的计数
--图的计数
-总结
--本章小结
-第八周作业
--H
--U
--G
--GT
--作业讨论区说明
-大家谈组合数学(4)
--采访黄连生老师
-组合之美
--组合之美之计数
-组合之美之线性常系数递推关系
-组合之美之多样的序列
-组合之美之鸽巢原理
-组合之美之转动群与染色
-采访邹欣
--采访邹欣1
--采访邹欣2
-知识点串串烧
--知识点串串烧
-期末测验--期末测验