《Concrete Mathematics》-chaper5-二项式系数
二项式系数,也是我们常用的组合数,最直观的组合意义就是从n个元素取k个元素所有可能的情况数,因此我们自然的得到下面二项式系数的定义式。
那么我们通过具有组合意义的二项系数,给出更加一般的二项式系数的定义:
通过上文给出推广形式的二项式系数,容易推得恒等式3.
但是我们注意到,在第二个恒等式的推导中,我们运用了对称恒等式.
而对称恒等式的使用要求上指标非负,这是否意味着对于第二个恒等式我们需要限制r的范围?
答案是否定的?该恒等式依然对实数r成立.
因为首先这个恒等式(下指标不变的相伴恒等式)必然是对非负整数r成立的,我们能够找到大于k+1组不同的点,使得左右两式的差为0.而我们从多项式的角度看左右两式的差值,他们其实是r的k+1次多项式.由多项式的理论:一个非零的d次多项式至多有d个不同的零点,否则,只能说明这个多项式恒为0.因此我们看到,这个恒等式左右两侧是关于r相同的多项式,因此该恒等式对于实数r成立.
这种证明方法称为多项式推理法,它在将二项式系数恒等式由整数推广到实数中很有用处.
有了加法恒等式(帕斯卡公式),我们很容易将下面的一个和式进行化简,它使得我们求解一个有规律的二项式系数的和式时,仅仅计算一个二项式系数即可,从算法时间复杂度的角度来讲,是O(n)到O(1)的优化。
关于上指标求和,这里有组合解释:我们在标号为0~n的n+1张票中选出m+1张票,这m+1张票中,序号最大为k的取法有C(k , m).其中k是二项式系数的上指标。
上指标求和的内涵在于向上扩充了帕斯卡三角形,在二项式系数的上指标小于下指标的时候,通常利用该恒等式进行等值的转换。
下面给出一系列二项式系数的乘积之和恒等式。
这些恒等式都是通过上文介绍的范德蒙卷积恒等式以及其他的恒等式推得而来,对于他们的推导,我们后续会慢慢地展开,这里暂且先将其简单罗列,在后面的化简实例中,可以拿过来直接应用.
-----------------------------------------分割线---------------------------------------------------------------------------------------------------------------
通过对上面一系列基本二项式系数恒等式的学习,下面我们就去在实战中去应用它们.
实例1:比值的和式:
我们需要对化简后的式子进行简单检验,这是做化简运算的基本素养和习惯.取n = 4 , m , 2.
通过原式给出的和式,结果为5/3.利用化简后的结果,也是5/3.
实例2:
从上面的过程中我们发现一个非常聪明的做法,如何利用我们之前讨论过的二项式系数恒等式解决具体的问题?——给予恒等式(尤其是和式中非指示常量)中参数具体的值。
例如我们利用刚刚用到的恒等式,再给予一组赋值:
《Concrete Mathematics》-chaper5-二项式系数的更多相关文章
- 个人作业——week1
1.问题 (1)与软件学院相比,计算机科学更偏向理论研究,本系开设软件工程课程的意图是否是为了平衡理论与应用的比重? (2)Bug的定义根据开发者与使用者的分析角度不同,有着很大的区别,如何使开发者能 ...
- 个人博客作业Week1
个人博客作业Week1 一.问题 通读<构建之法>我有一下几个问题 PM没有参与代码编如何进行管理. 软件工程师的职业资格考试对我们来说很有必要吗. 当我们为用户开发软件时我们需要了解用户 ...
- linux下编译bib、tex生成pdf文件
实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...
- 个人作业—Week1
针对教材内容的问题 阅读教材<软件工程——实践者的研究方法>Roger S.Pressman 在笼统地阅读了教材,大致理清教材知识结构后,提出以下问题作为今后学习地重点: 1) 什 ...
- 《构建之法》阅读有疑 与 个人Week1作业
<构建之法>阅读有疑 在用将近五节课的时间将邹欣老师的书<构建之法——现代软件工程>第二版大致看完.虽然全书是以轻松的口吻与”移山公司”员工的一些趣味谈话来传输一些理念和思想的 ...
- 推些C语言与算法书籍
c语言系统学习与进阶: 1. C primer plus C primer plus 作为一本被人推崇备至的 c 入门经典,C primer plus 绝非浪得虚名.应该 算得上 C 教材里最好的入门 ...
- 个人博客 week1
1:看完教材后不懂的几个问题: (1):团队合作中每个人分工而行,如何保证比较完善的各人之间的信息共享? (2):敏捷开发如何保证开发的效率?即在进行大项目的开发时敏捷开发看上去会很混乱. (3):黑 ...
- 算法的上帝——Donald E.Knuth(转)
开始介绍前先膜拜之~ 密尔沃基市,是美国威斯康辛州最大的城市.1938年1月10日,圣诞刚过不久,密尔沃基市民像往常一样平静地生活着.咖啡店里,有人在议论着罗斯 福总统的救市新政策,有人在议论着到底该 ...
- (转)Fibonacci Tilings
Fibonacci numbers {Fn, n ≥ 0} satisfy the recurrence relation (1) Fn+2 = Fn+1 + Fn, along with the i ...
随机推荐
- Python设计模式——观察者模式
需求:员工上班在偷偷看股票,拜托前台一旦老板进来,就通知他们,让他们停止看股票. 这里有两类人,一类是观察者,即员工,一类是通知者,即前台,员工在观察前台的状态,前台负责通知员工最新的动态. #enc ...
- hdu 5510 Bazinga KMP+尺取法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510 题意:至多50组数据,每组数据至多500个字符串,每个字符串的长度最长为2000.问最大的下标( ...
- Python和VS
下载VS Code 安装插件Python 安装Python,注意这里需要把Python的目录配置到环境变量中 文档结构非常重要,py文件一定位于根目录,.vscode平级:我曾经因为py文件在.vsc ...
- hibernate持久化操作注意
15:05 2014/5/21 1.设置lazy为false可以立即加载配合get,lazy默认true,配合load使用. 2.把pojo类定义为final的类.为最终就可以不使用代理 3.pojo ...
- Runtime - 01
Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西.最近在学习Runtime,有自己的一些心得,整理如下, 什么是Runtime 我们写的代码在程序运行过程中都会 ...
- objective-c常用数学方法
1. 三角函数 double sin (double);正弦 double cos (double);余弦 double tan (double);正切 2 .反三角函数 double as ...
- javascript随手记
编码规范 避免使用全局变量 写在所有函数外面的变量就是全局变量. 之所以要避免使用全局变量是因为:如果有多个类库的话,它们都定义了一个名字的变量.这时候后引入的类库中该变量的值就会覆盖前面引入的类库中 ...
- 如何获得iphone设备的剩余空间
在手机终端开发的时候,我们需要关注手机剩余空间,因为手机不像电脑一样空间宽裕,当设备空间比较少得时候需要释放空间. 用法:先引入头文件 #include <sys/param.h> #in ...
- 使用JProfiler进行内存分析
在最近的工作中,通过JProfiler解决了一个内存泄漏的问题,现将检测的步骤和一些分析记录下来,已备今后遇到相似问题时可以作为参考. 运行环境: Tomcat6,jdk6,JProfiler8 内存 ...
- android 与usb 设备通信(二)
再次遇到android mUsbManager.getDevicelist() 得不到usb 设备的问题.于是深入去探讨android 与usb 外围设备通信的问题.第一篇文章写的有点乱,本质就是需 ...