热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

鸽巢原理应用于一道十分有意思的题目

在组合数学中学习鸽巢原理。其中一道例题是这样的:从1,2,3,4,,200这200个整数中选取101个整数,则一定存在两个数存在整除关系

在组合数学中学习鸽巢原理。其中一道例题是这样的:

从1,2,3,4,..., 200这200个整数中选取101个整数,则一定存在两个数存在整除关系?

解答:

一个数对其按照2进行因式分解,总可写成n = 2 ^ k * t(其中k >=0, t为奇数)。例如2 = 2 ^ 1 * 1; 3 = 2 ^ 0 * 3...

而1到200存在奇数1,3,5,7,..., 199一共100个奇数。我选取101个整数,则说明存在两个整数i,j, 它们经过分解,t是相等的。所以前面的k是不一样的。也就证明了i,j存在整除关系。很简单是吗?请看下面一道扩展题。


从1,2,3,4,..., 200这200个整数中选取100个整数,其中只有一个数小于16,证明一定存在两个数存在整除关系?

我们这样想:

    定义两个集合A =  {a[1], a[2], ..., a[100]}

                           B = {1, 3, 5, 7, ..., 199}

其中A是从200个整数中选取的100个整数,而B[i]则是某个a[j]经过按2分解最后的奇数t。

经过思考,若选取的100个数不存在整除关系,则每个数一定映射到不同的奇数。若两个数经分解后得到相同的奇数,则这两个数能够整除。

我们再来分情况讨论,

        对于最小数15,

        它映射到集合B的元素是15。假设映射到集合B为45的元素为M,则M和15是什么关系呢?一定整除,对不对?所以存在整除。

       对于13, 39

                11, 33

                 9,  27

                 7, 21

                5, 15

               3, 9

              1不用说,肯定存在整除关系。

关键是对于1到15之间的偶数,如何处理?

       对于14, 14 = 2 * 7(k = 1)。 映射到B中的元素为7。

       我们接着考虑B的为7的倍数的元素{21, 35, 49, 63, 77, 91, 105,..., 189}

      我们知道105后面的映射到A就是它们本身,因为A中每个数都小于200.

     接着我们随便来考虑一组数值<35, 105>.105是35的倍数&#xff0c;为了使它们两者对应到A中的元素不存在整除&#xff0c;则A中的元素一定是2 ^ k * 35(k > 0)。而这是A中的元素一定是14

的整倍数。所以要么是14的倍数&#xff0c;要么是105和35对应的数存在整数倍关系。

      对于10,10 &#61; 2 * 5(k &#61; 1)处理方式和14一样。

       对于6&#xff0c;处理方式和14一样。

接着我们来考虑12,8,4,2.

     先来考虑2吧。

     若A中存在元素2&#xff0c;若不存在整数关系&#xff0c;其它199个数都是奇数。我们知道&#xff0c;这些奇数中肯定存在整除关系。

    再来考虑12吧。

    对于12&#xff0c;12 &#61; 2 ^ 2 * 3(k &#61; 2, t &#61; 3)

    奇数为3.我们来考虑B中的 sub_B&#61;&#xff5b;9, 15, 21, 27, ...99, 105, 111, 117, ..., 195&#xff5d;

    这些都是3的倍数。

   为了不和12产生整除关系设定sub_B 到A中元素的映射关系为 2 ^ k * sub_B[i](其中一定是小于等于1的)

我们知道105以后的k一定是0.我们来看tri_pair<9, 27, 117>117是27的倍数&#xff0c;27是9的倍数。为了是它们映射到A中元素不能整除&#xff0c;所以2 ^ 1 * 27, 2 ^ 2 ^ 9。

  这个时候我们发现&#xff0c;2 ^ 2 * 9 已经是12的倍数了。要么9, 27, 117对应于A中的数之间存在整除关系&#xff0c;要么其中有些数是12的倍数&#xff0c;总之&#xff0c;存在整除关系。

   来考虑8和4。

  对于4 &#61; 2 ^ 2 * 1(k &#61; 2, t &#61; 1)

  正如在对于12讨论的那样&#xff0c;一定存在4的倍数。


   对于8 &#61; 2 ^ 3 * 1&#xff08;t &#61; 1&#xff09;对于3次方如何考虑呢&#xff1f;

   还是按照原来的思路。

  我们取sub_B &#61; {3, 9, 15, 21, ..., }

这样对于<3, 21, 63, 189>后面的在这里就不写了。

到现在&#xff0c;我们已经将1,2,3,4,5,..., 15全部讨论完了。对于每个数都存在整除关系。

吐舌头


推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 热血合击脚本辅助工具及随机数生成器源码分享
    本文分享了一个热血合击脚本辅助工具及随机数生成器源码。游戏脚本能够实现类似真实玩家的操作,但信息量有限且操作不可控。热血合击脚本辅助工具可以帮助玩家自动刷图、换图拉怪等操作,并提供了雷电云手机的扩展服务。此外,还介绍了使用mt_rand函数作为随机数生成器的代码示例。 ... [详细]
author-avatar
手机用户2502903761
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有