赛马问题 (腾讯常考,绝对秒懂,看不懂你私聊我也要给你讲懂)

25匹马,一轮可以五匹马同时跑,需要多少轮

前五轮,五只马五只马跑,跑五轮,然后每轮马中的头马再跑一轮,这样就跑了6轮

根据跑的速度从快到慢五组分别是A B C D E

现在分组如下:

A5  A4  A3  A2  A1

B5  B4  B3  B2  B1

C5  C4  C3  C2  C1

D5  D4  D3  D2  D1

E5  E4   E3  E2  E1

由于是要找出前三名,显然E组的马全部被淘汰,里面不可能有前三名的马(排在E1前面的就有A1,B1,C1,D1,而且E组的其他马跑的还没E1快)

同理D组的马也全部淘汰

C组还剩下C1还有可能,

B组还剩下B1,B2还有可能

A组还剩下A2,A3还有可能(A1已经是毫无疑问的冠军了)

最后一轮:C1,B1,B2,A2,A3五匹马再跑一轮,前两名就是最后的二三名

所以总共需要7轮

同理,如果是64匹马,8个赛道,最快的4匹马

先跑八轮,然后每轮最快的马再跑一轮,那就跑了9轮

A8 A7 A6  A5  A4  A3  A2  A1

B8 B7 B6  B5  B4  B3  B2  B1

C8 C7 C6 C5 C4 C3   C2  C1 

D8 D7D 6 D5 D4 D3 D2 D1 

E8 E7 E6 E5 E4 E3 E2 E1 

F8 F7 F6 F5 F4 F3 F2 F1 

G8 G7 G6 G5 G4 G3 G2 G1 

H8 H7 H6 H5 H4 H3 H2 H1 

H组,G组,F组,E组的马全部淘汰

D组只有D1保留,其他全部淘汰

C组只有C2 ,C1两匹马保留,其他全部淘汰

B组只有B3,B2,B1保留,其他全部淘汰

A组A4,A3,A2保留,A1已经决出来是冠军  其他全部淘汰

D1,C2 ,C1,B3,B2,B1,A4,A3,A2九只马决出前三名  就是所有马里面的第二名,第三名,第四名,需要两轮

所以总共需要11轮

但这里有个坑:问的是最少要几轮,其实到D1,C2 ,C1,B3,B2,B1,A4,A3,A2九只马决出前三名这步,有可能不用两步,有可能一步就比完,B1不参赛,让其他八只马去比赛,如果B2或者C1拿了冠军,那B1就妥妥的第二名,所以一步就结束了

题目问的是最少需要多少轮,所以最少需要10轮

如果问的是最少需要多少轮确保一定可以选出前四名,那答案就是11

赛马问题采用了分治的思想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值