鸽巢原理(Pigeonhole Principle)
鸽巢原理,它是德国数学家狄利克雷(Divichlet,1805—1855)首先明确的提出来并用以证明一些数论中的问题,所以也称为狄利克雷原则。它是组合数学中最简单,也是最基本的原理。在数论和密码学中应用丰富。
它的定义:若有 n 个笼子和 n+1 只鸽子,所有的鸽子都被关在鸽笼里,那么至少有一个笼子有至少 2 只鸽子。
它的证明:如果这 n 个笼子中的每一个都至多装有一个鸽子🕊,那么鸽子🕊的总数最多是 n。既然我们有 n+1 个鸽子🕊,于是某个笼子里面就必然包含至少两个鸽子🕊。
大家如果想要了解更专业的数学证明,可以自行在网上搜索学习。
鸽巢原理在生活中的应用案例
盒子里有 10 只黑袜子、12 只蓝袜子,你需要拿一对同色的出来,最少需要拿出几只?假设总共只能拿一次,只要 3 只就无法回避会拿到至少两只相同颜色的袜子,因为颜色只有两种(鸽巢只有两个),而有三只袜子(三只鸽子),从而得到“拿 3 只袜子出来,就能保证有一双同色”的结论。
鸽巢原理在计算机领域的应用案例
分布式一致性算法的重要原理。
参考资料
- https://en.wikipedia.org/wiki/Pigeonhole_principle
- https://zh.wikipedia.org/wiki/%E9%B4%BF%E5%B7%A2%E5%8E%9F%E7%90%86
- https://wenku.baidu.com/view/9e66fe068e9951e79b892783.html
- 浅谈基于 simhash 的文本去重原理 - 将鸽巢原理应用到 simhash 去重问题
- 鸽巢原理简单形式及应用 by 北航计算机学院 - 李建欣
- 应用鸽巢原理的纸牌魔术一则
- MIT mathematics for computer science exams
茶歇驿站
一个可以让你停下来看一看,在茶歇之余给你帮助的小站,这里的内容主要是后端技术,个人管理,团队管理,以及其他个人杂想。