组合数学(三)鸽巢原理

鸽巢原理

先来看鸽巢原理最简单的说明,若有n个鸽巢,n+1个鸽子,则至少有一个巢内有至少两个鸽子。

鸽巢原理主要不是用来计数,但是可以结合反证法来证明一些看起来很巧妙很难想到的数论结论,下面也主要通过几个例子来介绍鸽巢原理。

一个学生有37天用来准备考试。根据以往的经验,他知道他需要的学习时间不超过60小时。他还希望每天至少学习1个小时。请你证明:无论她如何安排她的学习时间(假设每天的学习时间是一个整数),都存在连续的若干天,在此期间他恰好学习了13个小时。

证明如下:
不 妨 设 a 1 是 第 一 天 学 习 的 时 间 , a 2 是 第 一 天 和 第 二 天 学 习 的 时 间 总 和 , 以 此 类 推 , 由 题 可 得 a 是 一 个 严 格 递 增 序 列 , 即 : 1 < = a 1 < a 2 < … … < a 37 < = 60 ( 序 列 1 ) 易 得 序 列 a 1 + 13 , a 2 + 13 … … a 3 7 + 13 也 是 一 个 严 格 递 增 序 列 , 即 : 14 < = a 1 + 13 < a 2 + 13 < … … < a 37 + 13 < = 73 ( 序 列 2 ) 由 此 可 知 这 74 个 数 都 是 1 到 73 之 间 的 数 , 由 鸽 巢 原 理 可 知 必 有 两 个 数 是 一 样 的 , 由 于 数 列 1 和 数 列 2 都 是 单 调 递 增 的 , 所 以 必 然 存 在 a i = a j + 13 从 而 此 人 在 第 j + 1 , j + 2 , … … , i 天 总 共 学 习 了 13 个 小 时 不妨设a_1是第一天学习的时间,a_2是第一天和第二天学习的时间总和,以此类推,由题可得a是一个严格递增序列,即:\\ 1<=a_1<a_2<……<a_{37}<=60(序列1)\\ 易得序列a_1+13,a_2+13……a_37+13也是一个严格递增序列,即:\\ 14<=a_1+13<a_2+13<……<a_{37}+13<=73(序列2)\\ 由此可知这74个数都是1到73之间的数,由鸽巢原理可知必有两个数是一样的,由于数列1和数列2都是单调递增的,所以必然存在\\ a_i=a_j+13\\ 从而此人在第j+1,j+2,……,i天总共学习了13个小时 a1a2a1<=a1<a2<<a37<=601a1+13,a2+13a37+1314<=a1+13<a2+13<<a37+13<=7327417312ai=aj+13j+1j+2i13
到最后也就不难看出这个如此巧妙的13小时是怎么来的了,其实是为了刚好凑出那个鸽巢原理的条件,事实上14小时,15小时也是满足条件的(不妨自己想想为什么?)

再来看一题有些类似的题:

image-20210518201100278

这题的题意很简单,看起来很抽象,其实就是问你m个整数,是否一定存在连续的数,这几个数的和能被m整除,可以用反证法来说明:
考 虑 m 个 和 a 1 , a 1 + a 2 , … … a 1 + a 2 … … a m 假 设 这 m 个 和 都 不 被 m 整 除 , 即 除 m 都 有 一 个 非 零 整 数 , 整 数 范 围 从 1 到 m − 1 , 一 共 是 m − 1 个 数 , 但 是 我 们 知 道 有 m 个 数 来 取 模 , 根 据 鸽 巢 原 理 , 这 个 m 个 和 的 模 至 少 有 两 个 是 相 同 的 , 假 设 相 同 的 摸 是 x , 即 : a 1 + a 2 … … a i = a m + x a 1 + a 2 … … a j = b m + x 那 么 两 边 一 减 就 可 以 得 a k + … … + a j = ( b − a ) m 结 果 得 证 考虑m个和a_1,a_1+a_2,……a_1+a_2……a_m\\ 假设这m个和都不被m整除,即除m都有一个非零整数,整数范围从1到m-1,一共是m-1个数,\\但是我们知道有m个数来取模,根据鸽巢原理,这个m个和的模至少有两个是相同的,假设相同的摸是x,即:\\ a_1+a_2……a_i=am+x a_1+a_2……a_j=bm+x\\ 那么两边一减就可以得a_k+……+a_j=(b-a)m\\ 结果得证 ma1,a1+a2,a1+a2ammmm1m1m1mmxa1+a2ai=am+xa1+a2aj=bm+xak++aj=(ba)m

广义的鸽巢原理

Ramsey定理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值