面试:25匹马,5个赛道,选出前三,最优解

本文介绍了一种在仅比较有限次数的情况下找出25匹马中最快的三匹马的方法。通过将马匹分组比赛并逐步缩小候选范围,最终确定前三名。此策略涉及排序与淘汰过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个题很多人在没看过的情况下突然被面试官问及可能耗时较久,最近面试遇到了这个题,结合网上答案讲总结一下

第一步:25匹马分别编号 A1,A2,A3,A4,A5 B1,B2…
每一组进行比试进行排序,每组淘汰后两名(因为只有3个名额)
在这里插入图片描述
每组第一名分别为A1,B1,C1,D1,E1 (共比试5次得出)
第二步:每组第一比试一次,比如顺序为(A1>B1>C1>D1>E1 )得出第一和淘汰最后两名的列(小组第一都进不了前三,所以这一列都不会有前三产生)
在这里插入图片描述
第三步:因为C1比B1慢(所以C列只可能产生第三名),第二三名产生者可能是 A2,A3,B1,B2,C1 (为什么没有B3?因为此时只剩下两个名额),所以第7次由 A2,A3,B1,B2,C1赛跑,选出前两名,这样就得出前三名
在这里插入图片描述
最终需要跑7次
上述不难发现,把所有马每5匹比试一次后得到一个矩阵(A1>B1>C1>D1>E1 )
在这里插入图片描述
第二名: A2 , (A2, B1)
第三名:(A2 / B1)A3,B2,C1
第四名:第三名的参赛元素排除第三名后加上 A4,B3, C2, D1
第五名:…同上
上述所说规律是产生的范围值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值