vlambda博客
学习文章列表

程序员面试腾讯,遇奇葩题:64匹马8个跑道,多少轮选最快的四匹

 在互联网工作场所论坛上,一名程序员贴出了一篇寻求帮助的帖子。 腾讯两边的算法问题之一是:64匹马,8条跑道,选择最快的4匹马  最快的四匹马至少可以跑几圈来选择。 这种帮助也立即吸引了网民的围观和评论。让我们先看看网民是如何解决这个问题的,然后一起来看看。 


网友说  南大的算法学科之一,腾讯如此缺乏创意吗?这是我的第二个问题。 你能计时吗?如果你计时,它将是8场比赛。 

一些网民回答  他们被随机分成八组。这是八场比赛。在每组中拿出第一名,进行一场比赛。每次选择第一个位置。拿出小组中最后一个位置来弥补这个位置,然后和其他人一起跑。然后跑4次,你就没事了。 总共12次  我不知道这是不是对的

一些网民也对此进行了分析  64分,8组到8场比赛,每组淘汰最后4名;八场一对一的比赛,淘汰了最后四支队伍;其余16匹马中的一匹被确认为冠军。此外,在第一组中仍有第三名,在第二组中有第三名,在前两组中有第三名,在第一组中有第四名,总计9马未定。一场比赛随机选择了八场比赛,占据前三名。前三名+马赛在前一场比赛中错失,获得前三名+固定冠军是最快的四匹马。 是这个想法吗?

更多网民加入讨论  最小堆排序,8轮,64匹马每匹跑一次,根据每匹马花费的时间,取最快的四匹马  7年前我去腾讯实习,从三个方面面对这个问题。 如果时间允许,

 8匹配  如果你不算时间,选择4个人在家带椅子,然后把他们送到李的办公室。杀死剩下的60个人,只需要运行0个游戏。 八轮将八组马分组,从每组中去掉最后四匹,剩下八组*四匹马。 第一名选手淘汰了四名选手中的一组后,剩下的四组*四匹马  进行两次  每次一开始就有一个,它一定是前四名。 

这个题目甚至没有给出一些基本条件。1、马的表现是恒定的,每次跑相同的距离,时间必须相同  你会用秒表吗?3.这条跑道的长度不能和死马一样长。 

在你理解之前先阅读答案  不断缩小搜索空间,并删除尽可能多的数字。 此外,当只剩下9匹马时,我总是认为还有更简单的东西。 

程序员采访腾讯,遇到精彩问题:64匹8跑道马,多少轮选择最快的四条

程序员采访腾讯,遇到精彩问题:64匹8跑道马,多少轮选择最快的四条

更多网民参与回答  1、分成8组,每组跑一次,决定前4名,每组最后4名淘汰,所以8轮过后,还剩32匹马;2.将每组的第一名退出一轮比赛,淘汰最后四名和他的整个组。同时,在第一组,冠军出来了,留下3匹马,第二组,去掉最后一匹,剩下3个屁,第三组去掉2个,剩下2个,最后一组剩下1个,所以经过9轮,剩下9匹马争夺3个名额;一组3,8匹马,再来一轮,前3名,这三匹和剩下的一匹,前3名  总共11轮,全部完成  

至少10场比赛(当还剩9场时,选择第一组的最后3场、第二组的前3场和第三组的前2场。如果第三组的第一轮大于或等于3,那么前4名将已经被排序)。最多11个游戏


  8+4+2+1,每场比赛需要保持最快的4。大数据访问内存不足,需要一种外部排序的变体。信息论是经过计算得出的。8条赛道一次提供A8,8条信息,a64,60  思路是正确的,但是我的尿液里应该还有一些虫子。我们组也参加了测试。我想当我那年来的时候,我以为那是奥林匹克数学。这很简单,五年来没有改变。 我觉得八轮就够了。每匹马跑一次。用毫秒计记录每匹马的跑步时间,并进入前四名。 

第一步:分成八组,每组跑一轮,根据结果分组编号  第二步:根据结果编号,每组运行一轮  这时,总共进行了九轮比赛来选择跑得最快的马。 第三步:此时,马(即先进入第一场比赛的马和后进入第二场比赛的马)和最快的马进入第一场比赛,其余七匹可能是第二快的马。 让他们跑八圈。 此时,如果[1] [2]马在这一轮中跑第三。 这一轮的第一匹和第二匹马分别是64匹中的第二匹和第三匹。 但是[1] [2]这匹马是所有马中跑得第四快的。 到目前为止,前四名已经入选了10轮。 因为问的问题是“最不重要的”,所以在第十轮中没有考虑其他可能的结果。 


看到这么多网民的回答,事实上,很多网民回答正确  看似简单的问题,考试确实非常全面。我不知道你们网民对像腾讯这样的面对面考试是否有更清晰的答案。欢迎留言并与作者讨论! 

猜你喜欢