萌新笔记之鸽巢原理及其应用

前言:本萌新这里的笔记基本摘自于书+一些自己的浅层理解,如有错误请吐槽!欢迎指正!

鸽巢原理

定理:

如果n+1个物体,被放入n个盒子,那么至少有一个盒子包含两个或多个物体。(这一点无需证明也能理解吧)

应用1:

在13个人中存在两个人,他们的生日在同一个月份。(哇,看似好简单啊~这破应用!)

应用2:

问题:设有n对夫妇,为保证能够有一对夫妇被选出,至少要从这2n个人中选出多少人?
其实就是n+1个人对不对。考虑如果我选n个人的话?那么我们一定能构造x个男性,n-x个女性都不存在x个男性的配偶x∈[0,n],那么我们一旦多一个,一定会多一个异性使得“平衡破坏”,而产生一对夫妇。

应用3:

这个应用我觉得肯定有人做过这道题目:51nod 1103


我们简单的思考这个问题,考虑从1位置开始的m个前缀和。


我们排除这m个前缀和%m==0的情况,因为这样就已经满足整除m了。

我们知道除以m的数最多只有m-1个非零余数,那么bingo!很明显,这些前缀和必然存在相同的余数。so,如果前缀和sum[1,i]%m==sum[1,j]%m且i<j,那么是不是(sum[1,j]-sum[1-i])%m=0。所以一定存在。

应用4:

一位国际象棋大师有11周的时间备战一场锦标赛,他决定每天至少下一盘棋,但每周下棋不超过12盘。证明连续若干天,这位大师恰好下了21盘棋。

分析:11周-77天,我们考虑sum[1,i]代表从第一天开始到第 i 天的下棋盘数总数,我们能知道这个序列是严格递增的序列
sum[1,1]<sum[1,2]<sum[1,3]<......<sum[1,77],并且说一星期下棋不超过12盘,那么12*11=132,即

1≤sum[1,1]<sum[1,2]<sum[1,3]<......<sum[1,77]≤132.
现在去套上21!1+21(22)≤sum[1,1]+21<sum[1,2]+21<sum[1,3]+21<......<sum[1,77]+21≤132+21(153).
我们知道由于严格递增,对于任意i≠j,sum[1,i]≠sum[1,j],那么也就可以推出:对于任意i≠j,sum[1,i]+21≠sum[1,j]+21

那么对于这154(77+77)个数:sum[1,1],sum[1,2],sum[1,3],......,sum[1,77],sum[1,1]+21,sum[1,2]+21,sum[1,3]+21,......,sum[1,77]+21,
属于[1,153]范围内,一定存在两个相等的数!由于两类各自都不存在相等的数,那么一定存在:i,j,sum[1,i]+21=sum[1,j],也就是说在i+1,i+2,...,j连续这几天内下了21盘棋。
(这个应用开始有意思了?)

应用5:

应用6(中国剩余定理):


转载于:https://www.cnblogs.com/keyboarder-zsq/p/6777407.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值