智力题------赛马问题

有25匹马和5条赛道,没有计时器,即我们不能记录下每匹马跑完一圈的时间。问最少需要几场赛马可以知道前3名?

问题分析:

        注意这里的赛道每次只能跑一匹马,不存在说像学校里体育考试一样一群人在一个操场上一次性跑完的情况。

        因为我们有5条赛道,所以相当于一场赛马最多能分出五匹马之间的名次。因为问的是最少需要几场赛马,因此我们要充分利用赛道资源。25 / 5 = 5,我们把25匹马分成5组,每组5匹马,刚好够一次赛马。这5组马每组进行一次赛马,则一共有5场赛马。把每个组的第一名拉出来,一共5组对应5个第一名,这5个第一名再进行一次赛马。按这5匹马的名次将其原先所在分组记为A B C D E,则A组的第一名一定是25匹马中的第一名,25匹马中的第2,3名可能是A组的2,3名,或者是B组的1,2名,或者是C组的第一名。即在25匹马中的第一名确定的情况下,2,3名对应了三种情况:

1:A组2,3名就是25匹马中的2,3名

2:B组1,2名是25匹马中的2,3名

3:B组的第一名与C组的第一名构成25匹马中的第2,3名

那么我们把这所有的候选马,A组2,3名,B组1,2名,C组第1名,正好5匹马,拉出来再进行一场赛马,取这场赛马中的1,2名就是25匹马中的2,3名。

故一共需要 5 + 1 + 1 = 7场赛马。

 

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值