图解25匹马的选马问题

题目一:对于25匹马,有一个赛场,赛场有5个跑道,不使用计时器(也就是每次比赛只得到本次的比赛的顺序),试问最少比多少场才能选出最快的三匹马

思路:

0)前5场:这个题相对比较简单,25匹马至少要全部参加比赛,所以把25匹马分成5组进行比赛。这样我们就可以得到比赛结果如下:

1)选整体第1名:现在我们要选整体第一名,可能成为整体第1名的马匹为:{A1、B2、B3、B4、B5},那么第6场比赛为[A1,B1,C1,D1,E1]

比赛结果:第6场得到整体第1名

2)选整体第2、3名:根据矩阵关系,可知可能成为整体第2名的马匹为:{A2、B1},可能成为整体第3名的马匹为{A2、A3、B1、B2、C1},所以第7场比赛为[A2,B1,A3,B2、C1]

比赛结果:第7场得到整体第2、3名

可能你对上面红色字体不是特别理解,换种思路来说:

整体前1名可能出现范围:A1

整体前2名可能出现范围:A2、B1

整体前4名可能出现范围:A1、A2、B1

整体前7名可能出现范围:A1、A2、A3、B1、B2、C1

... ...

自己画一下就可以知道里面的规律

题目二:对于25匹马,有一个赛场,赛场有5个跑道,不使用计时器(也就是每次比赛只得到本次的比赛的顺序),试问最少比多少场才能选出最快的五匹马?(第一题是选前三名)

思路一:(简单的,竞标赛排序)

所谓简单,一般都有些蛮力的味道。所有优化,一般都会借助上一次的结果优化下一次的操作。

简单的思路关键词是:替换思想(用已选出的赛马替换掉选出的马)

0)和题目一思路一样,我们需要5场比赛来得到25匹马的基本顺序。

1)开始选马

第6场:选整体第1名-->参赛马为[A1,B1,C1,D1,E1]-->假设选出的整体第1名为A1

第7场:第选整体第2名-->参加在为[A2,B1,C1,D1,E1]-->假设选出的整体第1名为B1

第8场:选整体第3名-->参加在为[A2,B2,C1,D1,E1]-->假设选出的整体第1名为A2

第9场:选整体第4名-->参加在为[A3,B2,C1,D1,E1]-->假设选出的整体第1名为C1

第10场:选整体第5名-->参加在为[A3,B2,C2,D1,E1]-->假设选出的整体第1名为C2

.....

第25场:选整体第20、21、22、23、24、25

所以使用竞标赛排序思想(替换策略),选出前5名需要10场比赛

思路二:

再重复一句:所谓简单,一般都有些蛮力的味道。所有优化,一般都会借助上一次的结果优化下一次的操作。

那么优化后的选马方案为:

0)前5场仍然是比赛得到5组马匹的基本序列

1)第6场:参赛马为[A1,B1,C1,D1,E1](比赛后假设A1>B1>C1>D1>E1)

比赛结果:第6场得到整体第1名A1

2)第7场:我们继续分析可能为整体第2名的马为{A2、B1},可能为整体第3名的马为{A2、A3、B1、B2、C1}。此时我们可以知道其实只需要比较[A2,A3,B1,B2,C1]就可以得到第2、3名了(回想一下刚才使用简单替换思想,第6场比赛[A2,B1,C1,D1,E1],其中D1、E1根本不可能是整体第2名的)

比赛结果:第7场得到整体第2、3名

3)问题来了,第7场得到2、3名,但是不能确定是哪两匹马。所以我门要列举一下第2、3名可能的情况(一共5种):

A2,A3

A2,B1

B1,A2

B1,B2

B1,B3

3.1) 对于第一种情况:A2,A3

那么整体第4名可能为:{A4、B1}

如果第4名为A4,整体第5名可能为{A5、B1}

如果第4名为B1,整体第5名可能为{B2、C1}

很明显,我们只需要一场比赛(第8场)就可以确定整体第3,4名,参赛马为:[A4,B1,A5,B2,C1]

3.2)对于第二种情况:A2、B1

那么整体第4名可能为A3、B2、C1

如果整体第4名为A3,整体第5名可能为{A4、B2、C1}

如果整体第4名为B2,整体第5名可能为{A3、B3、C1}

如果整体第4名为C1,整体第5名可能为{A3、B2、C2、D1}

那么我们要向得到整体第4、5名的马匹,就需要比较[A3,A4,B2,B3,C1,C2,D1],很明显需要2场比赛(第8、9场)才能分出胜负

剩下的3种情况类似,选出前5匹马,至少8场,最多9场

时间: 2024-10-05 11:35:31

图解25匹马的选马问题的相关文章

25匹马的角逐

问题是这样的:一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛.假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少 得比多少场才能知道跑得最快的5匹马. 注意: "假设每匹马都跑的很稳定" 的意思是在上一场比赛中A马比B马快,则下一场比赛中A马依然比B马快. 稍微想一下,可以采用一种 竞标赛排序(Tournament Sort)的思路. 见<选择排序 > (1) 首先将25匹马分成5组,并分别进行5场比赛之后得到的名次排

25匹马的问题

偶然看到个有意思的智力题,和大家一起讨论: 25匹马,要找跑的最快的前三,每轮可以有5匹马赛跑,只能记录先后,不能记录时间,最少需要跑多少轮 目前想到的解法: 首先分5组,赛5轮,去掉每组最后两匹,剩15匹: 然后5组第一名一起赛一轮,去掉最慢的两组,因为前面至少有3匹比这两组的都快: 此时剩下9匹,最快的一匹已经产生, 还剩8匹,再淘汰第3组的第二,三两匹, 第2组的第三匹(前面至少有3匹,故淘汰), 剩下5匹,赛一轮,得到最快的两匹即可.

25匹马最少多少次可以选出前3

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/45887395 http://www.llwjy.com/blogdetail/208a6ac5e85d6078810047731d02c062.html 个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~ ----------------------------------------------------------------------------

【算法研究】25匹马赛跑,每次只能跑5匹马,最快能赛几次找出跑得最快的3匹马?赛跑不能计时,并假设每匹马的速度是恒定不变的。

答案是7次. 1. 首先将25匹马分成5组a.b.c.d.e进行比赛.比赛的次数就是5次.得到每组的第一名,分别编号a1,b1,c1,d1,e1. 2. 然后我们将每组的第一名进行比赛,得出结果.假设a1>b1>c1>d1>e1.(大于号表示a1比b1快,1表示第一名).在这个地方我们可以推断出,a1是所有马中最快的,所以它是第一名.d1,e1不可能是前三的马,同时这两匹马所在的组也不可能是前三的马.所以排除这两组马,还剩三组15匹马.现在需要找出第二快和第三快的马. 3. 第二名

我注定是一匹奔跑不息的马

我注定是一匹奔跑不息的马,不奢望自己是骏马,但我希望起码给我一片旷阔无垠的草原.我想跑,没有束缚的跑,跑累了,我希望能靠在树旁打个小盹--马都是站立着睡觉,这是从血淋林的教训中提取出来的经验. 我要写一段我至今不敢面对的经历.我要写一个彻彻底底的失败者的自白.我想冷静的去面对隐藏在微笑面具下面的悲伤面孔. 那时候的我也许还不懂爱情,也许把一切看得太简单.我疯狂的喜欢上了一个女孩,那时候的我满脑子都是她的身影,那是一种形容不出的感觉--美丽,惶恐.于是,我开始借着各种机会去接近她,课后问作业;为了

使用kubeadm快速部署Kubernetes(v1.12.1)集群---来源:马哥教育马哥原创

使用kubeadm快速部署Kubernetes(v1.12.1)集群------来源:马哥教育马哥原创 Kubernetes技术已经成为了原生云技术的事实标准,它是目前基础软件领域最为热门的分布式调度和管理平台.于是,Kubernetes也几乎成了时下开发工程师和运维工程师必备的技能之一. 一.主机环境预设 1.测试环境说明 测试使用的Kubernetes集群可由一个master主机及一个以上(建议至少两个)node主机组成,这些主机可以是物理服务器,也可以运行于vmware.virtualbo

如果要25匹马中选出跑得最快的3匹,每次只有5匹马同时跑,最少要比赛几次?

7次 首先分成5组A,B,C,D,E,赛5场 得到a1,b1,c1,d1,e1,假设a1>b1>c1>d1>e1 (这里可以改变序号,但不改变次序) 推出a1为第一的马,d1,e1不可能是前三的马,所以d1,e1不用参加最后一场. 同时推理出可能是第二第三的马是:a2,a3,b1,b2,c1 ,(推理理由,有两匹以上比它快的就自动出局) 然后a2,a3,b1,b2,c1再赛一场,其中前二的马即是第二,第三的马. 还要证明7次是最少的答案,这需要证明6次不可以..虽然我可以肯定答案是

亚马逊选品

首先是选品开始,然后-运营-推广-客户服务,每个环节都有配合起来.我打造过爆款的经验,一款选品出来后.如果市场都是新品,做点广告,做点EDM营销,然后找到review,重要的是产品标题优化和页面优化,图片优化不可忽视,能建模就别少那么点钱,你产品顾客看不到都只能看图片的自己想想.推广三位一体,走站内站外,SD,EDM,评论每天保持要2个以上增量,刚刚开始你Rank10万,卖几个后变5W名,接下来好办了,控制各个进度,把你产品推到rank1000不是难事.最低2人以上到3人以上的配合吧.一周到2周

北京大数据培训就选马哥教育:全新课程重磅出击

互联网的普及,使得人人都开始产生行为数据,在数据量越来越大的今天,大数据成为IT行业里技术含量最高.薪酬最高.成长空间最大的职位之一.企业在大数据方面的投入不断增加,对与人才的需求十分迫切. 据了解,未来3-5年,大数据行业人才缺口高达40万,部分企业甚至年薪20万招募0经验应届大学生从事大数据工作.马哥教育始终关注IT职业需求,为了帮助广大IT人实现年薪30万的大数据工程师梦想,重磅推出大数据课程. 深入了解行业发展,根据企业需求制定教学方案 马哥教育特聘10年开发经验的大数据专家.国内知名大