你能不能帮我解决这个难题,我无法找到一个好的答案!!
有49辆车以独特的速度比赛。还有一条赛道,最多可以有7辆赛车参赛。我们需要找到该组中第25快的汽车。我们没有秒表来衡量时间(所以我们只能测量每辆车的相对速度,而不是在比赛中的其他6辆车)。什么是最少的比赛数量?
答案 0 :(得分:10)
遵循Dialecticus的灵感。分成7个随机组并对每个组进行比赛,然后比赛这些组的中位数。这辆车成为枢纽,我们已经直接或间接地知道它与其他30辆汽车的关系(这是中位数中位数的属性)。所以把它放在resp。另外18个我们需要进行3场比赛,包括枢轴。在转动之后,我们需要对最多33辆汽车进行递归。继续。我结束了29场比赛。即使你假设需要完全排序,但不是,在17场比赛中有一个下限(真正的下限甚至会更低),这远低于29.所以我怀疑这不是正确的答案,但由于这一点缺乏任何解决方案,因此这是一个次优的解决方案。如果你看一下关于分拣网络的研究(这个问题一次只限于两辆赛车),找到最佳网络很困难,只有非常小的尺寸才能知道最佳网络,绝对不能达到49.我不知道任何有关7路比较器的网络研究。
也许一个例子可以提供帮助。让我们说从最慢到最快的车数,并将它们排列成7x7矩阵(任意,因为我们不知道速度,直到我们比赛它们。)
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 34 25 45 43 26 21 13
[2,] 11 24 2 40 14 30 32
[3,] 27 19 29 42 4 17 46
[4,] 15 10 39 33 1 9 5
[5,] 28 18 41 8 23 20 6
[6,] 16 3 38 7 12 22 36
[7,] 31 44 48 35 49 37 47
然后让我们对每一列进行比赛,并根据比赛的结果对它们进行排序:
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 11 3 2 7 1 9 5
[2,] 15 10 29 8 4 17 6
[3,] 16 18 38 33 12 20 13
[4,] 27 19 39 35 14 21 32
[5,] 28 24 41 40 23 22 36
[6,] 31 25 45 42 26 30 46
[7,] 34 44 48 43 49 37 47
现在让比赛第4行(中位数)并根据结果重新排列列
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 3 9 11 5 7 2
[2,] 4 10 17 15 6 8 29
[3,] 12 18 20 16 13 33 38
[4,] 14 19 21 27 32 35 39
[5,] 23 24 22 28 36 40 41
[6,] 26 25 30 31 46 42 45
[7,] 49 44 37 34 47 43 48
现在观察到中位数的中位数(元素[4,4])比上面和左边的任何一辆车都快,并且比任何一辆车在下方和右侧都慢(这是中位数中位数的属性)。对于其他车辆(左下和右上)我们不知道,所以我们需要对抗[4,4],一次6场比赛(3场比赛)。现在我们观察到26辆车比[4,4]慢,因此中位数必须是其中之一。无需再与任何其他人竞赛。现在用这26辆车重复这个过程。
答案 1 :(得分:10)
我的解决方案只需要17场比赛。
首先,让我解释一个需要32场比赛的简单解决方案。将赛车分为7组7人,每组比赛(7场比赛)。重复25次:从每组中挑选剩余最快的车并将其输入比赛,并将获胜者(25场比赛)放在一边。 25场比赛中的第一场确定了最快的整体赛车(#1),第二场比赛决定了#2,依此类推。
现在只有17场比赛的解决方案:
我们的策略是首先确定24辆最快的汽车(让我们称这些汽车“快速”)。然后我们会发现其余的最快(#25)。
随机将赛车放置在7x7网格上,每场比赛(7场比赛)。 然后,从每场比赛(第8场比赛)中争夺第3名选手,并按第3名选手的速度对比赛进行排序。
所以,经过8场比赛,我们有了这个:
每个网格单元代表一辆汽车。箭头指向更快的汽车。请注意,箭头是可传递的。
我们已经确定了8辆“快速”汽车:
我们怎么知道他们很快?看看蓝色的'x'。只有23辆车可能比它快(那些不在右下方的5x5)。所以,它肯定是“快速的”。您可以为其他x验证这一点。
我们已经确定了24辆“快速”汽车中的8辆。让我们从未来的考虑中删除这8个。我们现在正在寻找剩余车辆中最快的16辆。我们的七个小组的大小分别为4,4,5,7,7,7和7.(对于图表,每当我们移除一辆汽车时,让我们将剩余的汽车向左滑动。)
让我们比赛每组剩下第二快的赛车,并相应排序(第9场比赛)。和以前一样,我们可以确定4辆车当然是最快的16辆(即“快速”):
我在被移走的汽车所在的牢房中着色,但这还没有效果 我们已经确定了12辆“快速”汽车。删除“快速”汽车,我们寻找剩余汽车中最快的12辆。我们的团体规模在2到7之间。 让我们比赛每组剩下第二快的赛车,并相应排序(第10场比赛)。我们确定了12辆车中最快的12辆(即“快速”):
(剩下10辆“快速”汽车。)
我们可以再重复上一步(第11和第12场比赛)。每次我们再删除2辆车。但是,请注意,行/组中可能包含0或1个汽车。如果它有一辆车,我们比赛那辆车而不是“剩下的第二快车”。如果那辆车获胜,我们知道它是“快速”的,以及下一个最快的第二名车。无论如何,我们确定了2辆“快速”的汽车。 (剩下6辆“快速”汽车。)
经过12场比赛,我们确定并拆除了18辆“快速”赛车。我们需要确定剩余的6辆“快速”汽车。
现在让我们简单地比赛每组中最快剩余的赛车(第13场比赛),并相应地对行进行排序。获胜者是“快速”。 5离开。
在最后一场比赛之后,只有2辆车可能是剩下最快的车。蓝色的:
此外,剩余的第二快车辆是蓝色'o'或绿色'o'。让我们参加这5辆赛车比赛(第14场比赛),前两名选手肯定是“快速”。 3离开。
让我们重复最后两步/比赛来确定最后3辆快速赛车(第15和第16场比赛)。
所以,我们确定了24辆“快速”汽车。剩余最快的汽车必须是第25快的。我们可以通过简单地在每排/每组(第17场比赛)赛车中找到这辆车。
答案 2 :(得分:7)
答案 3 :(得分:6)
http://www.sureinterview.com/shwqst/1062001
第一轮
这个例子显示了一个可能的最坏情况。
1 2 3 4 13 14 15 <- group 1
5 6 7 8 16 17 18
9 10 11 12 19 20 21 ...
22 23 24 34 35 36 37
25 26 27 38 39 40 41 <- group 5
28 29 30 42 43 44 45 <- group 6
31 32 33 46 47 48 49 <- group 7
第二轮
我们希望以二分搜索方式找到其他中位数的等级。
现在,这两个中位数之间的差距最多为21,如本例所示。
第三轮
如下重新排列21辆汽车(&gt; 12和&lt; 34)。
13 14 15 <- group 1
16 17 18
19 20 21 ...
22 23 24
25 26 27 <- group 5
28 29 30 <- group 6
31 32 33 <- group 7
每行仍然是排序的。
因此,最多需要18场比赛才能获得第25快的赛车。
答案 4 :(得分:0)
你不能通过确定汽车的确切位置来迭代划分游泳池吗?
随机挑选一辆车来转动 穿过其他48辆汽车中的每一辆,以6人为一组对着枢轴车进行比赛 你现在知道了枢轴车的确切位置。
现在在您知道的部分中包含位置25的部分上运行相同的过程。如果剩余分区中的元素少于7个,则很容易确定。
最坏情况下的表现真的很可怕,但可以通过半智能的方式选择连续的枢轴来缓解。
答案 5 :(得分:0)
你总能在8场比赛中解决它...... 让我们把一辆Pivot Car称为Car1并在8场比赛中与其他所有赛车比赛,并将其他赛车的相对速度与Car1相提并论。 让我们说结果如下:读车#(相对车速为Car1)
比赛1:Car1-(0),Car2 - (+ 10),Car3(+5),Car4(+7),Car5(-3),Car6(-4),Car7(+1)
比赛2:Car1-(0),Car8 - (+ 10),Car9(+5),Car10(+7),Car11(-3),Car12(-4),Car13(+1)
第3场:Car1-(0),Car14-(+ 11),Car15(+4),Car16(+6),Car17(-4),Car18(-10),Car19(+2)
比赛4:Car1-(0),Car20(+9),Car21(+3),Car22(+5),Car23(-5),Car24(-11),Car25(+3)
比赛5:Car1-(0),Car26 - (+ 8),Car27(+2),Car28(+6),Car29(-6),Car30(-12),Car31(+4)
比赛6:Car1-(0),Car32 - (+ 7),Car33(+1),Car34(+3),Car35(-7),Car36(-13),Car37(+5)
比赛7:Car1-(0),Car38 - (+ 6),Car39(-1),Car40(+2),Car41(-8),Car42(-14),Car43(+6)
比赛8:Car1-(0),Car44-(+ 5),Car45(-2),Car46(+ 1),Car47(-9),Car48(-15),Car49(+7)
由于Car1是枢轴车,并且每辆赛车的速度在所有比赛中都是一致的,我们可以将所有结果分组以收集。
如果你对相对速度(wrt car1)进行排序,你可以找到第25快的车。