38头牛中选出3头跑得最快的,使用一个每次只能供6头比赛的场地,要求用最快的方法。

这是华为笔试的一道题目,我的答案是至少9次,分析如下,如果有误麻烦纠正。


38头牛分六组:G11、G12、G13、G14、G15、G16;每组六头,最后还剩2头未参加比赛;

第一轮比赛:以上六组各比一次,然后各组排名;各组最快的排在前面,如G11[0]表示G11组的第一名,G11[1]表示第二名,依此类推;(已经进行了6次比赛)


第二轮比赛:1、取各组的第一名G11[0]、G12[0]、G13[0]、G14[0]、G15[0]、G16[0],进行比赛;(进行一次比较)

                       2、决出前三名:假设是G1i[0]、G1j[0]、G1k[0];(1<i、j、k<6);

                       3、取G1i组的前三名,G1j组的前两名,G1k组的第一名(即G1k[0]),外加为参赛的两头;总共3+2+1+2=8;(前三名必定在其中,应该很容易想得明白)


第三轮比赛:其实,G1i组的第一名必定是前三名,所以只需要在剩下的7头中赛出前两名即可  ,但是无论剩下的是8头还是7头,至少都要进行两次比赛,才能决出前三名,所以                         第三轮要进行两次比赛(需要进行两次比赛)


综上所述:至少要进行:6+1+2=9,九次比赛;


以上只是我能想到的最少的比较次数,至于是不是最优的,还需要数学证明;欢迎各位朋友给出最少次数的数学证明。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值