美文网首页
64匹马,8个赛道问题

64匹马,8个赛道问题

作者: WAI_f | 来源:发表于2018-03-20 01:06 被阅读0次

    今天和一个朋友吃饭,朋友出了一个题目让我想想,正好最近也在看计算机算法方面的书,看看水平有没有提升。题目大意就是:

有64匹马,每次最多赛跑8匹马,想要找出最快的4匹马,要多少轮?

    最简单的想法是每一轮比赛都留下前4匹马,用来进行下一场比赛,那么比赛示意图如下:


11.png 22.png

    上面的方法肯定不是次数最少的,因为里面有很多次比较是多余的,所以我又花了些时间考虑怎么去掉这里面无用的比较,下面是我深思之后的方法,示意图如下:


33.png

算法的大致思路是:

  1. 前8轮赛马照旧,第9轮则是比较前面8轮中每一轮的第1名,也就是比较A11-A18,比赛后按照排名调整行的位置,比如未比赛前的A21-A24在比赛后,假设A21排在第5,所以调整编码为A51-A54。
  2. 第9轮重新编码后,如图 Figure.1中,实际需要比较的只剩下橘色的部分了,原因可以看做两个格子之间的距离超过了3,这是我的理解。当然还可以去掉一些格子,下面继续分析。
  3. 如图 Figure.2所示,A11是最快的马,所以不需要再比较,第2名则要从距离为1的A12和A21中决出,所以第10轮只需要比较A12和A21。
  4. 无论A12和A21哪个胜出,情况其实是一样的,如图 Figure.3和 Figure.4,第3、4名只需要从绿色部分序号代表的马中决出,绿色部分正好有8个格子,一次比赛就可以决出,所以第11轮就可以判断出64匹马中最快的4匹马。

    得到11这个答案后感觉应该找度娘确认一下,发现网上有更好的答案:10轮或者11轮比较。简单描述一下我与网上答案的差别,A21和A12其实并不是必须要比较的,因为A21实际上和A12不是对称的,A21比A22、A23、A31、A32、A41大,所以跳过我的第10轮比赛,直接进行 Figure.4,然后判断A22、A31是否有进前3名,如果进了,则只需要将A21插入组成新的排名即完成前4排名;如果A22、A31没有进前3名,那么第10轮前3名是A12-A14,那么再赛一轮A12-A14、A21即可,所以可能是10轮或者11轮。

网上答案原文链接

    这是我在简书上的第一篇文章,有些小紧张,以后要坚持写下去,可能会有一些错误,我会不断改进,希望能够在算法的路上远走越远。

相关文章

  • 64匹马,8个赛道问题

        今天和一个朋友吃饭,朋友出了一个题目让我想想,正好最近也在看计算机算法方面的书,看看水平有没有提升。题目大...

  • 人为什么会生病呢

    再说这个问题之前,我想先问大家一个问题。 一辆跑车最合适的赛道必是跑车赛道,到其他赛道,不仅不能完全发挥它的功能,...

  • 腾讯面试题, 2020年,让我们愉快的赛一次马!

    最近, 有小伙伴去腾讯面试后, 给小编提了个问题: ​ 64匹马,8个赛道,找出前4名,最少比赛多少场? 好的, ...

  • 我的第一次全程马拉松体验

    “人生的很多问题,跑步都会给你答案。” 1,赛道检验平时的功底 今天参加了秦皇岛国际马拉松,人生中的首个全马,艰难...

  • 晋马清晨的赛道

    在12月10号早4点,来自晋江两所高校,一所中专的1000名志愿者们就已经来到了体育馆做赛前准备工作,迎接1500...

  • 得到大学 | 思维模型课学习笔记及延展思考(02)

    【第二节 后来者:怎么实现赶超】 一、定义此类问题的边界 1、你面前有一条赛道,这条赛道特别有前途。 2、赛道上已...

  • 观酒泉国际戈壁超级马拉松有感

    戈壁超马在晚秋,男女老少竞风流。 人生赛道芳华梦,奥运精神美名留。

  • 五一半马,一个“有意义”的开始 121

    五月的开启方式特别特别有纪念意义——参加我们区承办的半马。 赛道风光好,不如赛道服务好,但最终都不如终点全方面的“...

  • 18 后来者:怎样实现赶超

    我们先来定义一下这个问题的边界: 第一,你面前有一条赛道,这条赛道特别有前途。 第二,赛道上已经有先行者了。 第三...

  • 923春藤透明会议室例会纪要

    【老喻参加新华网论坛后的几个洞见】 1、关于赛道 是什么赛道不重要,解决什么问题才重要。 三年前很牛逼的赛道,现在...

网友评论

      本文标题:64匹马,8个赛道问题

      本文链接:https://www.haomeiwen.com/subject/lmomqftx.html