面试智力题:赛马问题求前几名

25个人,每5个人一个跑道,最少经过几次比赛,得到前三名:

第一步:25个人分成5组,每组5人,分别比赛,得出每组的第一名,并对第一名进行排序,为A1, B1, C1, D1, E1;

第二步:,A1, B1, C1, D1, E1进行一次比赛,得出第一名,假设为A1,此时经过6轮比赛,得出第一名;

第三步: 找第二名第三名;首先第一步中D1, E1排除,同时排除对应组所有成员;剩A1, B1, C1三组

第四步: 第二名可能人员是A2,B1; 第三名可能人员是A2,A3, B1,B2, C1

第五部: 综合第四步猜猜,A2,A3, B1,B2, C1进行一轮比赛,得出第二名第三名,此时总共经过7轮比赛;
 

25个人,每5个人一个跑道,最少经过几次比赛,得到前五名:

前6次比赛是一样的

第7次比赛:将上次第一名所在组的下一号马再和剩余的4匹1号马比赛,
第一名是跑的第二快的马,由于只有4个名额,所以跑的最慢的马和所在组剩余的马全部被淘汰。
第8次比赛:将上次第一名所在组的下一号马、上次第二名所在组的下一号马和剩余的3匹马比赛,
第一名是跑的第三快的马,由于只有3个名额,所以跑的最慢的两匹马和所在组剩余的马全部被淘汰。
在剩下的比赛中分别淘汰慢的,将排名稍后的加进来比赛,最多跑到第10次就可以选出最快的5匹马。如果在某一次比赛中排名前几的是同一组的且和已经选出的马加一起大于等于5,就可以提前决出前5名。
所以8-10次就可以选出最快的5匹马。

参考博客:

https://blog.csdn.net/weixin_34025151/article/details/92042078?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3

https://blog.csdn.net/fivedoumi/article/details/8020756?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值