鸽巢原理(初识)(纯算法)

2023-11-10

http://www.docin.com/p-1352185354.html

一.什么是

鸽巢原理(抽屉原理)若把n个物体放在n - 1个抽屉中,至少有一个抽屉中放了两个物体。

二.  特点

只能用于解决存在性问题

三.例题

例一: 在边长为1的三角形放5个点,至少有两个点之间的距离<=1/2

解析:将一个三角形分为4个三角形,在四个三角形中放5个点,则至少有两个点在同一个三角形中,这两个点之间的距离最长为1/2,得证

例二:某次会议n位代表参加,至少有两个人认识的人数相等。注意认识是相互的

解析:首先讨论每个人都至少认识一个人的情况,这种情况下,认识的人数为1到n-1.参加会议的人数n得证

假设有人一个人都不认识,这时剩下的人中认识的人的个数只能是1-n-2,人数为n-1.依次类推,知道将所有一个人都不认识的alone people消掉,就优惠产生鸽巢原理的情况

例三:从1到2n中,选n + 1个数,至少有一对数,其中一个数是另一个数的倍数

解析:将选中的n+1个数中所有的2都除掉,即除以2^k,由于1-2n中只有n个奇数,一定有一对数的奇数形式相等的。这两个数分别是2^m*equal,2^n*equal,因此一定一个数是另一个数的倍数

例四:从1-2n中,选n+1个数,至少有一对数是互素的

解析:首先明确一点,相邻的两个整数一定是互素的,证明如下:

假设这两个整数为n,n+1.假设他们不是互素的,有公共因子q

n = p1 * 1,n + 1 = p2 * q

n+1 - n = q(p2 - p1)

q(p2-p1) = 1

其中p2,p1均为整数,q >=2,可证不等

可将这2n个数分为n分每分为(1,2)(3,4)……(2n-1,2n),从n分中选n+1个数,则至少有两个数来自同一份,至少有两个数是互素的





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

鸽巢原理(初识)(纯算法) 的相关文章

  • idea git操作

    图片有的 是idea界面 有的是Android studio界面 当成字典看 不用记 你知道自己想操作仓库时 知道自己曾写过这篇文章就行 目录 引入git别的仓库的其它模块 创建 Git 分支并且 Push 删除分支 删除分支的文件 And

随机推荐

  • eclipse IDE的安装和常用配置教程(详细)

    eclipse IDE的安装和常用配置 第一步 安装配置JDK 打开eclipse需要先安装和配置好JDK 所以需要提前配置JDK 教程链接如下 https blog csdn net weixin 46028577 article det
  • HDFS简单测试

    使用Hadoop的Java客户端API操作分布式文件系统 获取文件系统实现 hdfs master01 9000 FileSystem get URI uri Configuration conf String user fs defaul
  • android 功能模块之通讯模块四

    Android通讯录开发之通讯录联系人搜索功能最新实现 2014年1月13日 之前的有两篇博客介绍了如何解决通讯录搜索功能的问题 那些方法都是从网上搜集 然后经过自己整理试验之后的 但在项目测试人员给我反馈 似乎还是存在一些问题 比如一些简
  • 【Flutter 2-10】Flutter手把手教程UI布局和Widget——流式布局Wrap

    作者 弗拉德 来源 弗拉德 公众号 fulade me Wrap 在Flutter中Wrap是流式布局控件 Row和Column在布局上是很好用 但是有一个缺点 如果当子控件数量过多导致Row或Column装载不下的时候 就会出现UI页面上
  • cdn 引入的资源需要通过 externals 排除打包哦~

    cdn 指的是通过相互连接的网络系统 使用最靠近用户的服务器将音乐 图片等资源以高效率和低成本的方式将内容传递给用户 在 webpack 中 我们可能会将引入的第三方资源会编译成单独的文件 作为静态资源放到服务器上 但有些库它本身就有 cd
  • 结构体大小和类大小的计算

    1 结构体大小的计算 当为空结构体时 其大小为1 选取结构体中类型字节数最大的最为对齐符 注意 是最大的类型字节数 例如 int a 10 并不是以40作为对齐符 每次申请对齐符个字节大小的内存 当内存不够时才继续申请 举例 struct
  • 特征选择&特征提取

    特征 在一些实际问题中 我们得到的样本数据都是多个维度的 即一个样本是用多个特征来表征的 比如在房价预测的问题中 影响房价y的因素有房子面积x1 卧室数量x2等 我们得到的样本数据就是 x1 x2 这样一些样本点 这里的x1和x2又被称为特
  • Maven阿里云镜像配置

    在setttins xml文件中找到标签对 进行修改
  • OpenWRT docker安装homeassistant、node-red、zigbee2mqtt

    1 安装 Docker 和 Docker Compose opkg update opkg install docker compose 2 创建 Home Assistant 的配置文件目录和数据目录 mkdir p opt hassio
  • 晶振PCB Layout

    晶振PCB Layout 前提摘要 个人说明 限于时间紧迫以及作者水平有限 本文错误 疏漏之处恐不在少数 恳请读者批评指正 意见请留言或者发送邮件至 noahpanzzz gmail com 参考 B站唐老师讲电赛 跟着大厂学画PCB 2
  • 静态代码检测工具:PC-Lint(for c/c++)

    PC Lint是C C 软件代码静态分析工具 你可以把它看作是一种更加严格的编译器 它不仅可以检查出一般的语法错误 还可以检查出那些虽然符合语法要求但不易发现的潜在错误 C语言的灵活性带来了代码效率的提升 但相应带来了代码编写的随意性 另外
  • 20130828可注册域名列表

    aabkx com aapun com abmrw com abnks com acphq com acsgq com actcL com aderz com adjni com adojj com adyjy com afabd com
  • mysql查询以逗号分隔数据

  • 静态代码扫描的原理

    静态代码扫描存在的价值 研发过程 发现BUG越晚 修复的成本越大 缺陷引入的大部分是在编码阶段 但发现的更多是在单元测试 集成测试 功能测试阶段 统计证明 在整个软件开发生命周期中 30 至 70 的代码逻辑设计和编码缺陷是可以通过静态代码
  • 阿里 ARouter的github地址

    不知道为什么搜不到 于是直接去github搜了下 下面是地址 https github com alibaba ARouter
  • 【编程语言】java--jsp--javabean中的scope用法小解

    javabean中的scope用法小解 1 scope取值page JSP分配给每个bean是互不相同的 虽然bean的功能是一样 但是占据不同的内存单元 bean的有效范围是当前页面 2 scope取值session JSP分配给每个be
  • ✖ 2 problems (0 errors, 2 warnings) 0 errors and 2 warnings potentially fixable with the `--fix`

    1 说有两个警告 需要删除一个点 和加一个回车 但我找不到位置 所以直接使用 2 报警告的原因 我创建项目的时候选择了eslint 代码规范 3 解决办法 执行npm run lint fix自动修复警告 npm run lint fix
  • Python Get()函数用法介绍

    一 简介 Python是一种高级编程语言 它具有简单 易学 高效等特点 而Python get 函数是其中一个重要的函数 该函数用于返回指定键的值 如果键不存在 则返回默认值None 下面将从各个方面对Python get 函数做详细的阐述
  • 平摊分析的三种方法(聚集、会计和势能)+举例(栈操作、二进制加法器、动态表)

    平摊分析 摊还分析 我们有时候会有一个算法 或者只是单纯的一系列操作 当我们需要将这一些操作计算一个平均代价 但是又不涉及概率的问题 我们就可以使用平摊分析 就比如一个月的账单 可能每一天都是正常的一日三餐 但是有一个周末出去玩花的钱可能会
  • 鸽巢原理(初识)(纯算法)

    http www docin com p 1352185354 html 一 什么是 鸽巢原理 抽屉原理 若把n个物体放在n 1个抽屉中 至少有一个抽屉中放了两个物体 二 特点 只能用于解决存在性问题 三 例题 例一 在边长为1的三角形放5