计算之魂思考题1.4赛跑问题

一、问题

假设由25名短跑者争夺比赛前三名,赛场上有5条赛道,一次可以有5名选手同时比赛。比赛不计时,只看相应名次。假设选手发挥稳定,也就是说如果约翰比张三跑得快,张三比凯莉跑得快,那么约翰一定比凯莉跑得快。最少需要几次比赛才能决出前三名?

二、思路

  1. 首先分5组ABCDE,每组5人比一次
  2. 将各组的第一名拉出来比一次,则此时决出第一名,假设A1
  3. 将A2 BCDE1比一次,决出第二名C1或A2。
  4. 将A3 BCDE1或 A2 C2 BDE1比一次决出第三名

此时需要8次才能决出前三名。

三、纠错

上边思路中未考虑全面,做了一步无用功

1. 比出A1时,此时假设排序为A1>B1>C1>D1>E1,由于只需决出前三名,而D组E组全体成员由于前面至少有3个超过的了,所以D组E组全部淘汰。

2.C2前面由于至少有A1 B1 C1 3个超过了,所以C组只有C1有可能竞争前三

3.B3前面至少有A1 B1 B2 3个超过了,所以B组只有B1 B2 有可能竞争前三

4.A4前面至少有 A1 A2 A3 3个超过了,A组只有 A1 A2 A3有可能竞争前三

所以当决出A1为第1名时,此时还剩下 A2 A3 B1 B2 C1 有可能竞争前三,只需让他们5个比1次就好按顺序前两名为第2、3名。

此时需要7次就可决出前三名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值