zoukankan      html  css  js  c++  java
  • 骚操作之鸽巢原理

    桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的“抽屉原理”。 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素。” 抽屉原理有时也被称为鸽巢原理。它是组合数学中一个重要的原理。

    在acm中也是会遇到的,比如两个人对打的得分问题

    110个人参加一个国际象棋单循环比赛,每两人都进行一局比赛,胜积1分,败积-1分,平积0分。结果又32个平局。证明:必有两个人积分相同。

    2给两个序列A,B |A|=N且元素为1-M,|B|=M且元素为1-N。各找一段连续子序列使和相同的。

    hint:利用鸽巢原理

     知乎大佬如是说,搬运

    作者:HopLee
    链接:https://www.zhihu.com/question/46645409/answer/112834387
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    n+1个物品放入n个盒子中,则一定存在一个盒子里面至少有两个物品。
    没错这就简单形式的鸽巢原理,简直像是一句废话。
    加强形式的鸽巢原理就不太显然了:
    q_{1} +q_{2} +...+q_{n} -n+1个物品放入n个盒子中,则或者第1个盒子中至少有q_{1} 个物品,或者第二个盒子至少有q_{2} 个物品......或者第n个盒子至少有q_{n} 个物品(q_{1}= q_{2}=...=q_{n}=2时就是鸽巢原理的简单形式)。
    -----------------------------
    光看鸽巢原理并没有觉得这个定理有趣在哪里,其实它有趣的是它的一些推论,下面我列举几个:
    1. left{ 1,2,...,kn 
ight} 中选出n+1个数,总存在两个数他们最多相差k-1
    2. 在边长为1的正方形中放入5个点,则其中至少有两个点距离不超过frac{sqrt{2} }{2}
    3. 任取n+1个整数,一定存在两个数它们的差被n整除。
    4. 一个孩子每天至少学习一个小时,共看7周,每周学习不超过11小时,则一定存在连续的若干天,在这期间共学习21个小时(假定每天学习时间为整数小时)。
    5. 从1到200的自然数中取出101个数,一定存在两个数,其中一个是另一个的整倍数。
    6. 之前看到其他朋友提到了Ramsey理论,其实那个六人聚会问题(六个人聚会一定有三个人两两相互认识或者相互不认识)也是通过鸽巢原理解决的。

    ---------------------------------

    看上去像一句废话的鸽巢原理其实会引申出很多有趣的例子,如果想了解鸽巢原理更多的内容可以看看《Combinatorics》 (Brualdi,R.A. 第五版)

    这几个问题想想做做智力体操还是很有趣的

    大佬您太强了,还请多多指教哎
  • 相关阅读:
    SQLServer 高可用、高性能和高保护延伸
    SQLServer 通过DMV实现低影响的自动监控和历史场景追溯
    查找表包含的页和页所在的表
    出身在二三线城市软件工作者的悲哀
    SQL语句实现取消自增列属性
    基于Apache(without ssl)的svn环境搭建
    sqlite3 命令行操作
    HTML常用特殊符号集
    IOS项目目录结构和开发流程
    Mac OSX 快捷键&命令行
  • 原文地址:https://www.cnblogs.com/BobHuang/p/7253124.html
Copyright © 2011-2022 走看看