详解鸽巢原理【组合数学】
来源:互联网 发布:工业机器人控制算法 编辑:程序博客网 时间:2024/06/05 19:47
鸽巢原理的简单形式:
如果要把n+1个物体,放进n个盒子,那么至少有一个盒子包含两个或更多的物体。
证明:用反证法。如果这n个盒子中的每一个都至多含有一个物体,那么物体的最多数量是n。这与我们有n+1个物体的实际情况相矛盾,故不成立。
当然,对于鸽巢原理的简单形式,几乎所有人都可以很轻松的理解。然而,就是这样一个简单的定理,却可以发展出许多我们难以想象的推论。
这里我们分为,鸽巢原理的简单应用,和鸽巢原理的加强版应用进行讨论。
鸽巢原理的简单应用:
应用1.在13个人当中,存在两个人,他们的生日在同一个月份。
鸽巢原理略微复杂的应用:
应用1.一位国际象棋大师有11周的时间备战一场锦标赛,他决定每天至少下一盘棋,但为了不使自己过于疲劳他好决定每周不能下超过12盘棋。证明存在连续若干天,期间这位大师恰好下了21盘棋。
分析:通过表面来看,这个题无非是在11周的77天里找到一个连续的区间,存在这个区间的下棋数正好为21,就可以得到证明。
解:
设a1是第一天下棋的盘数,a2是第一天第二天下棋的总盘数,a3是第一天第二天第三天下棋的总盘数,以此类推。因为每天都要至少下一盘棋,所以a1、a2、a3….是一个严格单调递增的序列。 此外a1>=1,而且任意一周下棋的数量最多是21盘,所以这11个周下棋的总盘数不会超过11*12=132盘。
我们可以写出这样的不等式:
1<=a1<a2<a3...<a77<=132。(共计77天,我们将序列发展到77即可)
那么这个序列每一项加上21 也是严格递增的序列:
21<=a1+21<a2+21<a3+21...<a77+21<=132+21(153)
不难看出 上面两个序列的取值范围 在1~153之间。
时期的事情的就要发生了,上面的两个序列一共出现了154个数字。
他们的取值都在1~153之间。 那么这两个序列必定存在两个数相等。
证毕!
应用2:从整数1、2、3、…200中选出101个整数。证明;在所选的这些整数之间存在两个这样的整数,其中一个可被另一个整除。
分析:无非是找出,存在两个数一个数是另一个数的倍数。显然,暴力枚举不可取。我们要用其他的方法进行验证。
可以稍稍借用快速幂的思想,将每个数化成2^K*a的格式,显然a是奇数。
然而200之内只有100个奇数,那么101个数之中显然存在两个有相同a的数。2
的倍数肯定可以整除,所以肯定存在两个这样的数。
证毕!
当然,关于鸽巢原理的应用还有更多,这里就不一一详解了,给出几个参考方向,有兴趣可以看一下。
中国剩余定理、有理数循环小数、Ramsey定理……
- 详解鸽巢原理【组合数学】
- 组合数学-01鸽巢原理
- poj 3370 Halloween treats (组合数学:鸽巢原理)
- poj 2356 Find a multiple(组合数学:鸽巢原理)
- HDU 1205 吃糖果(组合数学鸽巢原理)
- 组合数学之四 —— 鸽巢原理
- 组合数学-反射原理
- 组合数学[包容排斥原理]
- 组合数学 poj 2356-鸽巢原理,poj 3270-群-循环,
- Find a multiple(组合数学:鸽巢原理的简单应用)
- Halloween treats(组合数学:鸽巢原理的简单应用)
- word2vec数学原理详解
- POJ 3370 组合数学 鸽笼原理
- 组合数学-容斥原理专辑
- 组合数学 容斥原理 专题
- 容斥原理+质因数分解+组合数学
- 组合数学:容斥原理及其应用
- 组合数学之容斥原理
- maven项目中找不到Maven Dependencies解决办法
- com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'id' cannot be n
- dedecms实现在线留言功能
- 事件回放:因「鹿晗、关晓彤」公布恋情,微博瘫痪了……
- 新能源车企新财路!双积分政策引出450亿元大蛋糕【附下载】| 智东西内参
- 详解鸽巢原理【组合数学】
- java根据模板生成pdf文件并导出(转)
- JZOJ 5401. 【NOIP2017提高A组模拟10.8】Star Way To Heaven
- git pull和git push的区别
- centos7使用yum安装mariaDB(开源MySQL)无法启动的解决办法
- (一)异常处理
- [BZOJ]1206: [HNOI2005]虚拟内存 线段树
- 175. Combine Two Tables
- 织梦留言板添加验证码