《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和VS
下载VS Code 安装插件Python 安装Python,注意这里需要把Python的目录配置到环境变量中 文档结构非常重要,py文件一定位于根目录,.vscode平级:我曾经因为py文件在.vsc ...
- 认识基本的UI资源
什么是UI精灵(Sprite) 在制作UI时,经常将一些零碎的小的UI资源(比如,一个小箭头,一个按钮等)打包成一张大图,然后在使用时,只使用这个大图中的一部分,那么这一块"被切出来&quo ...
- Collection和Collections的区别
Collection 是集合类的上级接口,继承它的接口主要有set和list.Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索,排序,线程安全化等操作.
- html5判断用户摇晃了手机(转)
先来看下html5的这几个特性: 1.deviceOrientation:方向传感器数据的事件,通过监听该事件可以获取手机静态状态下的方向数据: 2.deviceMotion: 运动传感器数据事件,通 ...
- 几个不常见但非常出色的 .NET 开源库
NLog NLog 目前最为出色的 .NET 日志库,非常容易配置,且极具灵活性.最重要的是与 log4net 相比,NLog 的开发很活跃.顺带提一句,NLog 完全兼容 Mono. Mono.Ce ...
- Ubuntu下与菜单和图标相关的几个文件夹
转自UBUNTU下与菜单和图标相关的几个文件夹 /usr/share/icons 系统图标文件夹 /usr/share/applications 系统菜单文件夹,要在左上角的应用程序菜单中添加一项 ...
- php PDO连接mysql以及字符乱码处理
<?php //mysql 的 PDO $dsn = "mysql:dbname=cqkx;host:localhost"; $username = "root&q ...
- MongoDB实战指南(五):MongoDB中的聚集分析
聚集操作是对数据进行分析的有效手段.MongoDB主要提供了三种对数据进行分析计算的方式:管道模式聚集分析,MapReduce聚集分析,简单函数和命令的聚集分析. 1. 管道模式进行聚集 这里所说的管 ...
- Motion on Ubuntu
Motion is a program that monitors the video signal from one or more cameras and is able to detect if ...
- easyui源码翻译1.32--Form(表单)
前言 使用$.fn.form.defaults重写默认值对象下载该插件翻译源码 form提供了各种方法来操作执行表单字段,比如:ajax提交, load, clear等等.当提交表单的时候可以调用va ...