- 浏览: 14677 次
- 性别:
- 来自: 上海
最近访客 更多访客>>
最新评论
-
vivid_gxp:
有种算法,叫“快速排序”。google考的是算法。还有其他的算 ...
讨论一个算法,GOOGLE的一个面试题 -
momofiona:
这难道不是计时赛吗?第七场 B1和A2 A3 a4 a5如果 ...
讨论一个算法,GOOGLE的一个面试题 -
side91:
8轮
6轮后
1 2+ 3+ 4+ 5+
2+ 3+ ...
讨论一个算法,GOOGLE的一个面试题 -
pushi19832006:
这个要是想无差错的计算 貌似只有10次把
比方说
//1: ...
讨论一个算法,GOOGLE的一个面试题 -
xici_magic:
算法导论 很经典的书啊 回头有时间再看一看了
讨论一个算法,GOOGLE的一个面试题
这个是google的一个面试题,觉得挺有意思的,问题是这样的:一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少得比多少场才能知道跑得最快的5匹马。[也许至少会产生误解,换成最少,就是考虑你的算法的最坏情况下]
以上就是这个问题。其实拿起笔来,仔细看看倒是不是很难。 (后来仔细想了想,其实并不简单)
如果推而广之,有N匹马,有M个赛道,试问要至少多少场比赛才能知道跑得最快的Y匹马。
在CSDN上看到另外一个题,http://topic.csdn.net/u/20081017/14/826303de-1871-4e50-89e8-47ed56f49acc.html
实际上就是把N换成256, M换成2, Y换成3
-----
另外有个朋友提出的描述方法浅显易懂,反正25匹马要分5组的,大家在下列统一的马匹归类下讨论比较容易
前5轮应该没有什么争议,就是5个队都比一场,暂且这样排名,名字在前面的快些。
A组 A1 A2 A3 A4 A5
B组 B1 B2 B3 B4 B5
C组 C1 C2 C3 C4 C5
D组 D1 D2 D3 D4 D5
E组 E1 E2 E3 E4 E5
第6轮目前比较统一的做法是让 每个组的第一,即A1,B1,C1,D1, E1比一场,假设 A1>B1>C1>D1>E1 那么这个时候可以淘汰一些马了,淘汰的用--表示,如下:
A组 A1 A2 A3 A4 A5
B组 B1 B2 B3 B4 --
C组 C1 C2 C3 -- --
D组 D1 D2 -- -- --
E组 E1 -- -- -- --
分歧就在第7轮了,我也没想清楚最佳方法,我就不在第一个帖子说了。
这里的同志哥大多都把cs专业学没了。
我也觉得需要10场
正解啊
然后第六场每对最快的马比。这一场过后,将跑得最慢的那匹马的所在的队伍整队都淘汰掉(无需比了,最快的都跑得比别人慢)
这个不一定吧。
可能跑的最慢的也比最快的队伍中第2名的要快
分析结果漏洞百出。
其实赛5场就够了。弄个秒表计下。(玩笑)
以上就是这个问题。其实拿起笔来,仔细看看倒是不是很难。 (后来仔细想了想,其实并不简单)
如果推而广之,有N匹马,有M个赛道,试问要至少多少场比赛才能知道跑得最快的Y匹马。
在CSDN上看到另外一个题,http://topic.csdn.net/u/20081017/14/826303de-1871-4e50-89e8-47ed56f49acc.html
实际上就是把N换成256, M换成2, Y换成3
-----
另外有个朋友提出的描述方法浅显易懂,反正25匹马要分5组的,大家在下列统一的马匹归类下讨论比较容易
前5轮应该没有什么争议,就是5个队都比一场,暂且这样排名,名字在前面的快些。
A组 A1 A2 A3 A4 A5
B组 B1 B2 B3 B4 B5
C组 C1 C2 C3 C4 C5
D组 D1 D2 D3 D4 D5
E组 E1 E2 E3 E4 E5
第6轮目前比较统一的做法是让 每个组的第一,即A1,B1,C1,D1, E1比一场,假设 A1>B1>C1>D1>E1 那么这个时候可以淘汰一些马了,淘汰的用--表示,如下:
A组 A1 A2 A3 A4 A5
B组 B1 B2 B3 B4 --
C组 C1 C2 C3 -- --
D组 D1 D2 -- -- --
E组 E1 -- -- -- --
分歧就在第7轮了,我也没想清楚最佳方法,我就不在第一个帖子说了。
评论
102 楼
zhanglubing927
2008-11-27
我的答案是:至少7场,最多10场.
我相信这个应该是正确答案,毕竟我看来前面所有人都分析.
但我开始也很疑惑,我看题目就想到了外部排序,准备使用归并排序来做.
把25匹马分成5组,分别排序(比赛),然后把有序的5组两两合并.最后合并为一个有序的组.然后取前5名.搞定问题.
不过当我写出归并排序后,再看题意,感觉不应该这样做,毕竟是最好的方式找到前5名.而不是一个排序的问题.至少不需要知道所有的名次.
改变思路后,发现留言已经到了11页.哈哈...我就不多说了,高兴自己还是想出来了.
随便把归并的代码贴上来吧
我相信这个应该是正确答案,毕竟我看来前面所有人都分析.
但我开始也很疑惑,我看题目就想到了外部排序,准备使用归并排序来做.
把25匹马分成5组,分别排序(比赛),然后把有序的5组两两合并.最后合并为一个有序的组.然后取前5名.搞定问题.
不过当我写出归并排序后,再看题意,感觉不应该这样做,毕竟是最好的方式找到前5名.而不是一个排序的问题.至少不需要知道所有的名次.
改变思路后,发现留言已经到了11页.哈哈...我就不多说了,高兴自己还是想出来了.
随便把归并的代码贴上来吧
package com.jason.stu.algorithm; import java.util.Arrays; /** * 归并排序 * * @author Jason * */ public class MergeSort { public static int[] merge(int[] a, int[] b) { int m = 0, n = 0, i = 0; int size = a.length + b.length; int[] result = new int[size]; while (m < a.length && n < b.length) { result[i++] = (a[m] < b[n]) ? a[m++] : b[n++]; } if (m == a.length) for (int t = n; t < b.length; t++) result[i++] = b[t]; else if (n == b.length) for (int t = m; t < a.length; t++) result[i++] = a[t]; return result; } public static void main(String[] args) { int[] data1 = { 0, 6, 2, 3, 4 }; int[] data2 = { 1, 7, 8, 5 }; Arrays.sort(data1); Arrays.sort(data2); for (int n : merge(data1, data2)) System.out.println(n); } }
101 楼
qinjim1986
2008-11-26
前五轮,不用我多说了。关键是下来的。
分析:
如果有可能,总的前五名中,最多会有几个每一轮的第五名。答案很显然是1个。那么第四,第三,第二,第一呢。分别是,一个,一个,两个,五个。
问题的关键出现了。就因为第三名最多只会出现一个,如果把所有的第三名都比一下的话,比的结果是,只取其中的第一名,以外的马都可以排除,这样我们就可以排除12匹马。
如图:(第六轮结果)
1 1 1 1 1
2 2 2 2 2
3 * * * *
4 * * * *
5 * * * *
同理我们如果在第六轮比的是所有的第二名的话,也会排除(12匹)。
1 1 1 1 1
2 2 * * *
3 3 * * *
4 4 * * *
5 5 * * *
(小小的一个发现,就当抛砖引玉。我还没得出最终结论!)
分析:
如果有可能,总的前五名中,最多会有几个每一轮的第五名。答案很显然是1个。那么第四,第三,第二,第一呢。分别是,一个,一个,两个,五个。
问题的关键出现了。就因为第三名最多只会出现一个,如果把所有的第三名都比一下的话,比的结果是,只取其中的第一名,以外的马都可以排除,这样我们就可以排除12匹马。
如图:(第六轮结果)
1 1 1 1 1
2 2 2 2 2
3 * * * *
4 * * * *
5 * * * *
同理我们如果在第六轮比的是所有的第二名的话,也会排除(12匹)。
1 1 1 1 1
2 2 * * *
3 3 * * *
4 4 * * *
5 5 * * *
(小小的一个发现,就当抛砖引玉。我还没得出最终结论!)
100 楼
hurricane1026
2008-11-26
phpxer 写道
看到最后,有点失望。如果换成是5000匹马,取最快的2000批,按照上面列位的穷举法... 怎么就没有人把这个算法用算数式表达出来呢?
这里的同志哥大多都把cs专业学没了。
99 楼
kingre79
2008-11-26
应该9场就可以出来
前5场:
A1>A2>A3>A4>A5
B1>B2>B3>B4>B5
C1>C2>C3>C4>C5
D1>D2>D3>D4>D5
E1>E2>E3>E4>E5
第6场:A3>B3>C3>D3>E3,剩下
A1>A2>A3>A4>A5
B1>B2
C1>C2
D1>D2
E1>E2
第7场:A3,B1,C1,D1,E1比较,有下面几个结果:
1)A3>B1>C1>D1>E1,结果为
A1>A2>A3>A4>A5
B1>B2
C1
此时再比一场即共8场结果就出来了。
2)B1>A3>C1>D1>E1,结果也为
A1>A2>A3>A4>A5
B1>B2
C1
3)B1>C1>A3>D1>E1,结果为
A1>A2>A3
B1>B2
C1>C2
再比一场也出来了
4)B1>C1>D1>A3>E1,结果为
A1>A2
B1>B2
C1>C2
D1>D2
也是再比一场出结果
5)B1>C1>D1>E1>A3,结果为
A1>A2
B1>B2
C1>C2
D1>D2
E1>E2
此时需再比两场即共9场才能出结果
前5场:
A1>A2>A3>A4>A5
B1>B2>B3>B4>B5
C1>C2>C3>C4>C5
D1>D2>D3>D4>D5
E1>E2>E3>E4>E5
第6场:A3>B3>C3>D3>E3,剩下
A1>A2>A3>A4>A5
B1>B2
C1>C2
D1>D2
E1>E2
第7场:A3,B1,C1,D1,E1比较,有下面几个结果:
1)A3>B1>C1>D1>E1,结果为
A1>A2>A3>A4>A5
B1>B2
C1
此时再比一场即共8场结果就出来了。
2)B1>A3>C1>D1>E1,结果也为
A1>A2>A3>A4>A5
B1>B2
C1
3)B1>C1>A3>D1>E1,结果为
A1>A2>A3
B1>B2
C1>C2
再比一场也出来了
4)B1>C1>D1>A3>E1,结果为
A1>A2
B1>B2
C1>C2
D1>D2
也是再比一场出结果
5)B1>C1>D1>E1>A3,结果为
A1>A2
B1>B2
C1>C2
D1>D2
E1>E2
此时需再比两场即共9场才能出结果
98 楼
lenj
2008-11-26
shiwei2006 写道
10场是正确的。一匹马只要在横向和竖向都排第一,一定是这个矩阵中最快的,被选出来。
[有N匹马,有M个赛道,试问要至少多少场比赛才能知道跑得最快的Y匹马。]
A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
D1 D2 D3 D4 D5
E1 E2 E3 E4 E5
int c1 = N % M ==0 ? N / M : N / M + 1; //经过c1轮比赛得到一个矩阵.
int count = c1 + Y; //再经过Y次比赛找到最快的. 每次从最左竖列开始,选中一个后其所在横列顺序补上.
需要count次。(最多也就需要count次就可以了.)
[有N匹马,有M个赛道,试问要至少多少场比赛才能知道跑得最快的Y匹马。]
A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
D1 D2 D3 D4 D5
E1 E2 E3 E4 E5
int c1 = N % M ==0 ? N / M : N / M + 1; //经过c1轮比赛得到一个矩阵.
int count = c1 + Y; //再经过Y次比赛找到最快的. 每次从最左竖列开始,选中一个后其所在横列顺序补上.
需要count次。(最多也就需要count次就可以了.)
我也觉得需要10场
97 楼
shiwei2006
2008-11-25
10场是正确的。一匹马只要在横向和竖向都排第一,一定是这个矩阵中最快的,被选出来。
[有N匹马,有M个赛道,试问要至少多少场比赛才能知道跑得最快的Y匹马。]
A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
D1 D2 D3 D4 D5
E1 E2 E3 E4 E5
int c1 = N % M ==0 ? N / M : N / M + 1; //经过c1轮比赛得到一个矩阵.
int count = c1 + Y; //再经过Y次比赛找到最快的. 每次从最左竖列开始,选中一个后其所在横列顺序补上.
需要count次。(最多也就需要count次就可以了.)
[有N匹马,有M个赛道,试问要至少多少场比赛才能知道跑得最快的Y匹马。]
A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
D1 D2 D3 D4 D5
E1 E2 E3 E4 E5
int c1 = N % M ==0 ? N / M : N / M + 1; //经过c1轮比赛得到一个矩阵.
int count = c1 + Y; //再经过Y次比赛找到最快的. 每次从最左竖列开始,选中一个后其所在横列顺序补上.
需要count次。(最多也就需要count次就可以了.)
96 楼
luck_donkey
2008-11-25
给一个比赛的办法:
1) 1-5轮,分成5组分别比赛,按照比赛结果从快到慢排成5组
2) 从5组中抽出最快进行比赛,把最快的放到一边去,它肯定是第一,是前5名之内的;最慢的所对应的那一组的余下4匹被淘汰,因为比它快的就有5个,肯定是在前5名之外。把余下的4匹按照从快到慢的顺序马排成一组,进入被淘汰的那一组的位置。
3) 重复上面的方法4次,得到5匹最快的马。
1) 1-5轮,分成5组分别比赛,按照比赛结果从快到慢排成5组
2) 从5组中抽出最快进行比赛,把最快的放到一边去,它肯定是第一,是前5名之内的;最慢的所对应的那一组的余下4匹被淘汰,因为比它快的就有5个,肯定是在前5名之外。把余下的4匹按照从快到慢的顺序马排成一组,进入被淘汰的那一组的位置。
3) 重复上面的方法4次,得到5匹最快的马。
95 楼
jasongreen
2008-11-24
复杂的问题,挺不容易,所谓的正解,有些牵强
94 楼
gogon1111
2008-11-24
1-5轮:分成5组分别比赛。(不是最好,但最简化)
6轮 :每组的第2名比赛。从快到慢(从小到大)依次命名为a2,b2,c2,d2,e2。按照这个规则给所有的马命名。
此时a1肯定入围,其余争夺前4。将a1排出讨论。
b4比a2,b1,b2,b3都大,所以不可能入围。
c2比b1,c1,a2,b2都大,也不可能入围。
所以只有剩下的a2,a3,a4,a5,b1,b2,b3,c1,d1,e1争夺前4。其中a2<a3<a4<a5,b1<b2<b3, a2<b2
7轮 :将a3,b2,c1,d1,e1比赛。此次比赛的第一名直接入围,剩下的角逐前3。因为c1,d1,e1的等价性,不妨根据比赛结果设c1<d1<e1。然后分情况讨论:
引论甲:如果b3要入围,那么入围人选只能是a1,b1,a2,b2,b3。所以这场比赛b2,a2分别占据前二才行。
如果a3排第一。那么a2,a3直接入围。此次比赛的第二名,第三名和b1,a4,a5决出最后2名入围者。总共是8。
如果a3排第二,c1第一。比a3快的只可能c1,a2,b1,所以a2,a3直接入围。剩下的a4,a5,b1和这轮第三名,第四名争夺最后一名入围者。总共8轮。如果a3排第二,b2第一。b1,b2,a2直接入围。最后一个名额由a3,b3和刚才第三名争夺产生。总共8轮。
如果a3排第三。那么刚才比赛最后2名直接失去比赛资格。可能比a2小的只有前2名和b1,所以a2直接入围。再加上前两名直接入围。第6轮结束剩下的10名选手中,3名入围,2名失去资格,剩下的5名选手刚好可以一场比赛决出最后一个名额。总共8轮。
如果a3排第四。a3,a4,a5都失去资格。根据引论甲,b3也失去资格。只剩下有a2,b1和刚才的前三名,5人只需要一场比赛即可。总计8轮。
如果a3第五。a3,a4,a5失去资格。根据引论甲,b3失去资格。比赛前2名直接入围。剩下的4人再进行一场比赛即可。总计8轮。
所以按照这种算法,最多8轮就可以决出前5名。
6轮 :每组的第2名比赛。从快到慢(从小到大)依次命名为a2,b2,c2,d2,e2。按照这个规则给所有的马命名。
此时a1肯定入围,其余争夺前4。将a1排出讨论。
b4比a2,b1,b2,b3都大,所以不可能入围。
c2比b1,c1,a2,b2都大,也不可能入围。
所以只有剩下的a2,a3,a4,a5,b1,b2,b3,c1,d1,e1争夺前4。其中a2<a3<a4<a5,b1<b2<b3, a2<b2
7轮 :将a3,b2,c1,d1,e1比赛。此次比赛的第一名直接入围,剩下的角逐前3。因为c1,d1,e1的等价性,不妨根据比赛结果设c1<d1<e1。然后分情况讨论:
引论甲:如果b3要入围,那么入围人选只能是a1,b1,a2,b2,b3。所以这场比赛b2,a2分别占据前二才行。
如果a3排第一。那么a2,a3直接入围。此次比赛的第二名,第三名和b1,a4,a5决出最后2名入围者。总共是8。
如果a3排第二,c1第一。比a3快的只可能c1,a2,b1,所以a2,a3直接入围。剩下的a4,a5,b1和这轮第三名,第四名争夺最后一名入围者。总共8轮。如果a3排第二,b2第一。b1,b2,a2直接入围。最后一个名额由a3,b3和刚才第三名争夺产生。总共8轮。
如果a3排第三。那么刚才比赛最后2名直接失去比赛资格。可能比a2小的只有前2名和b1,所以a2直接入围。再加上前两名直接入围。第6轮结束剩下的10名选手中,3名入围,2名失去资格,剩下的5名选手刚好可以一场比赛决出最后一个名额。总共8轮。
如果a3排第四。a3,a4,a5都失去资格。根据引论甲,b3也失去资格。只剩下有a2,b1和刚才的前三名,5人只需要一场比赛即可。总计8轮。
如果a3第五。a3,a4,a5失去资格。根据引论甲,b3失去资格。比赛前2名直接入围。剩下的4人再进行一场比赛即可。总计8轮。
所以按照这种算法,最多8轮就可以决出前5名。
93 楼
blunder
2008-11-22
晕,啥时代了?连个计时器都没有啊?
92 楼
piglol
2008-11-22
六次就ok了
91 楼
zlxia0013
2008-11-21
apptech 写道
必须进行的五场比赛就不说了。从第六场比赛开始吧:在每组的第一名进行第六场的比赛,然后第一名直接晋级,再由第一名所在对的下一名和剩下的四匹马进行比赛,以此类推,五轮比赛后即可得出跑的最快的无匹马。
正解啊
90 楼
phpxer
2008-11-19
看到最后,有点失望。如果换成是5000匹马,取最快的2000批,按照上面列位的穷举法... 怎么就没有人把这个算法用算数式表达出来呢?
89 楼
reciting
2008-11-18
<p>想想应该最多9轮:<br/>前5轮没有悬念,分5组各自组内跑一轮<br/>A组 A1 A2 A3 A4 A5 <br/>B组 B1 B2 B3 B4 B5 <br/>C组 C1 C2 C3 C4 C5 <br/>D组 D1 D2 D3 D4 D5 <br/>E组 E1 E2 E3 E4 E5 <br/><br/>第六轮,各组的第3名比(粗体表示),那么非第一名所在组的第3、4、5名均被淘汰(加删除线),理由很简单,如果B3在前5名的话,比其快的还有A1、A2、A3 B2 B3,再加上自己已经6匹,不可能:</p>
<p>A组 A1 A2 <strong>A3</strong> A4 A5 <br/>B组 B1 B2 <strong><span style='text-decoration: line-through;'>B3</span></strong><span style='text-decoration: line-through;'> </span><span style='text-decoration: line-through;'>B4 B5</span> <br/>C组 C1 C2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>C3</span></span><span style='text-decoration: line-through;'> </span><span style='text-decoration: line-through;'>C4 C5</span> <br/>D组 D1 D2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D3</span></span><span style='text-decoration: line-through;'> </span><span style='text-decoration: line-through;'>D4 D5 </span><br/>E组 E1 E2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E3</span></span><span style='text-decoration: line-through;'> E</span><span style='text-decoration: line-through;'>4 E5</span></p>
<p> </p>
<p>第七轮,上一轮跑第1名的组再次用该组的第3名A3和其它组的第二名比,结果可能以下几种,最坏的情况是第一种,仅淘汰3匹(淘汰分析原因同上),下一轮以第一种情况为例说明,其它情况更好只会更少轮数</p>
<p>A组 A1 A2 <span style='font-weight: bold;'>A3</span> A4 A5 <br/>B组 B1 <span style='font-weight: bold;'>B2</span> <br/>C组 C1<span style='font-weight: bold;'> <span style='text-decoration: line-through;'>C2</span></span> <br/>D组 D1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D2</span></span> <br/>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span> </p>
<p> </p>
<p> <br/>B组 B1 <span style='font-weight: bold;'>B2</span> </p>
<p>A组 A1 A2 <span style='font-weight: bold;'>A3</span> <span style='text-decoration: line-through;'>A4 A5</span><br/>C组 C1<span style='font-weight: bold;'> <span style='text-decoration: line-through;'>C2</span></span><span style='text-decoration: line-through;'> </span> <br/>D组 D1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D2</span></span> <br/>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span> </p>
<p> </p>
<p>B组 B1 <span style='font-weight: bold;'>B2</span> <br/>C组 C1<span style='font-weight: bold;'> C2</span> </p>
<p>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> <br/>D组 D1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D2</span></span><span style='text-decoration: line-through;'> </span> <br/>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span> </p>
<p> </p>
<p>
</p><p style='margin: 0px;'>B组 B1 <span style='font-weight: bold;'>B2</span> <br/>C组 C1<span style='font-weight: bold;'> C2</span> </p>
<p style='margin: 0px;'>D组 D1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D2</span></span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> <br/>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span> </p>
<p/>
<p> </p>
<p>
</p><p style='margin: 0px;'>B组 B1 <span style='font-weight: bold;'>B2</span> <br/>C组 C1<span style='font-weight: bold;'> C2</span> </p>
<p style='margin: 0px;'>D组 D1 <span style='font-weight: bold;'>D2</span> </p>
<p style='margin: 0px;'>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span><span style='text-decoration: line-through;'> </span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> </p>
<p/>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>第八轮,还用最快的一组的第3名和其它组的第一名比,情况可能如下,第一种情况最坏,还剩下7个,第5种情况次之,科还剩下6个,其它三种情况仅剩下5个,结果已确定,下一轮以第一种情况为例讨论:</p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'>A3</span> A4 A5 <br/>B组 <span style='font-weight: bold;'>B1</span> <br/>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> <br/>D组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D1</span></span> <br/>E组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E1</span> </span> </p>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'><br/>B组 <span style='font-weight: bold;'>B1</span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'>A3</span> <span style='text-decoration: line-through;'>A4 A5</span> <br/>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> <br/>D组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D1</span></span> <br/>E组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E1</span> </span> </p>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>
</p><p style='margin: 0px;'>B组 <span style='font-weight: bold;'>B1</span> </p>
<p style='margin: 0px;'>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'>A3</span> <span style='text-decoration: line-through;'>A4 A5</span> <br/>D组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D1</span></span> <br/>E组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E1</span> </span> </p>
<p/>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>
</p><p style='margin: 0px;'>B组 <span style='font-weight: bold;'>B1</span> </p>
<p style='margin: 0px;'>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> </p>
<p style='margin: 0px;'>D组 <span style='font-weight: bold;'>D1</span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> <br/>E组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E1 </span></span> </p>
<p/>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>
</p><p style='margin: 0px;'>B组 <span style='font-weight: bold;'>B1</span> </p>
<p style='margin: 0px;'>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> </p>
<p style='margin: 0px;'>D组 <span style='font-weight: bold;'>D1</span> </p>
<p style='margin: 0px;'>E组 <span style='font-weight: bold;'>E1 </span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> </p>
<p/>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>第九轮,前轮第一名的组的前3名必是前五名,仅需要对其它4匹马比较,再取前两名即可确定最后结果</p>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>A组 A1 A2 A3 <span style='font-weight: bold;'>A4 A5</span> <br/>B组 <span style='font-weight: bold;'>B1</span> <br/>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> <br/>D组 <br/>E组 </p>
<p>A组 A1 A2 <strong>A3</strong> A4 A5 <br/>B组 B1 B2 <strong><span style='text-decoration: line-through;'>B3</span></strong><span style='text-decoration: line-through;'> </span><span style='text-decoration: line-through;'>B4 B5</span> <br/>C组 C1 C2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>C3</span></span><span style='text-decoration: line-through;'> </span><span style='text-decoration: line-through;'>C4 C5</span> <br/>D组 D1 D2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D3</span></span><span style='text-decoration: line-through;'> </span><span style='text-decoration: line-through;'>D4 D5 </span><br/>E组 E1 E2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E3</span></span><span style='text-decoration: line-through;'> E</span><span style='text-decoration: line-through;'>4 E5</span></p>
<p> </p>
<p>第七轮,上一轮跑第1名的组再次用该组的第3名A3和其它组的第二名比,结果可能以下几种,最坏的情况是第一种,仅淘汰3匹(淘汰分析原因同上),下一轮以第一种情况为例说明,其它情况更好只会更少轮数</p>
<p>A组 A1 A2 <span style='font-weight: bold;'>A3</span> A4 A5 <br/>B组 B1 <span style='font-weight: bold;'>B2</span> <br/>C组 C1<span style='font-weight: bold;'> <span style='text-decoration: line-through;'>C2</span></span> <br/>D组 D1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D2</span></span> <br/>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span> </p>
<p> </p>
<p> <br/>B组 B1 <span style='font-weight: bold;'>B2</span> </p>
<p>A组 A1 A2 <span style='font-weight: bold;'>A3</span> <span style='text-decoration: line-through;'>A4 A5</span><br/>C组 C1<span style='font-weight: bold;'> <span style='text-decoration: line-through;'>C2</span></span><span style='text-decoration: line-through;'> </span> <br/>D组 D1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D2</span></span> <br/>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span> </p>
<p> </p>
<p>B组 B1 <span style='font-weight: bold;'>B2</span> <br/>C组 C1<span style='font-weight: bold;'> C2</span> </p>
<p>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> <br/>D组 D1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D2</span></span><span style='text-decoration: line-through;'> </span> <br/>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span> </p>
<p> </p>
<p>
</p><p style='margin: 0px;'>B组 B1 <span style='font-weight: bold;'>B2</span> <br/>C组 C1<span style='font-weight: bold;'> C2</span> </p>
<p style='margin: 0px;'>D组 D1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D2</span></span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> <br/>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span> </p>
<p/>
<p> </p>
<p>
</p><p style='margin: 0px;'>B组 B1 <span style='font-weight: bold;'>B2</span> <br/>C组 C1<span style='font-weight: bold;'> C2</span> </p>
<p style='margin: 0px;'>D组 D1 <span style='font-weight: bold;'>D2</span> </p>
<p style='margin: 0px;'>E组 E1 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E2</span></span><span style='text-decoration: line-through;'> </span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> </p>
<p/>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>第八轮,还用最快的一组的第3名和其它组的第一名比,情况可能如下,第一种情况最坏,还剩下7个,第5种情况次之,科还剩下6个,其它三种情况仅剩下5个,结果已确定,下一轮以第一种情况为例讨论:</p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'>A3</span> A4 A5 <br/>B组 <span style='font-weight: bold;'>B1</span> <br/>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> <br/>D组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D1</span></span> <br/>E组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E1</span> </span> </p>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'><br/>B组 <span style='font-weight: bold;'>B1</span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'>A3</span> <span style='text-decoration: line-through;'>A4 A5</span> <br/>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> <br/>D组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D1</span></span> <br/>E组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E1</span> </span> </p>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>
</p><p style='margin: 0px;'>B组 <span style='font-weight: bold;'>B1</span> </p>
<p style='margin: 0px;'>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'>A3</span> <span style='text-decoration: line-through;'>A4 A5</span> <br/>D组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>D1</span></span> <br/>E组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E1</span> </span> </p>
<p/>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>
</p><p style='margin: 0px;'>B组 <span style='font-weight: bold;'>B1</span> </p>
<p style='margin: 0px;'>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> </p>
<p style='margin: 0px;'>D组 <span style='font-weight: bold;'>D1</span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> <br/>E组 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>E1 </span></span> </p>
<p/>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>
</p><p style='margin: 0px;'>B组 <span style='font-weight: bold;'>B1</span> </p>
<p style='margin: 0px;'>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> </p>
<p style='margin: 0px;'>D组 <span style='font-weight: bold;'>D1</span> </p>
<p style='margin: 0px;'>E组 <span style='font-weight: bold;'>E1 </span> </p>
<p style='margin: 0px;'>A组 A1 A2 <span style='font-weight: bold;'><span style='text-decoration: line-through;'>A3</span></span><span style='text-decoration: line-through;'> A4 A5</span> </p>
<p/>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>第九轮,前轮第一名的组的前3名必是前五名,仅需要对其它4匹马比较,再取前两名即可确定最后结果</p>
<p style='margin: 0px;'> </p>
<p style='margin: 0px;'>A组 A1 A2 A3 <span style='font-weight: bold;'>A4 A5</span> <br/>B组 <span style='font-weight: bold;'>B1</span> <br/>C组 <span style='font-weight: bold;'>C1</span><span style='font-weight: bold;'> </span> <br/>D组 <br/>E组 </p>
88 楼
apha
2008-11-18
一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。
假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少得比多少场才能知道跑得最快的5匹马。[也许至少会产生误解,换成最少,就是考虑你的算法的最坏情况下]
-------------------------------
1. 不考虑算法:
最少应该是在6场,
前五场是没问题的,第六场是A5和B1,C1,D1,E1跑一场,A5第一,第六场出结果.
2. 考虑算法:
前五场是一样的,第六场:A2,B2,C2,D2,E2跑一场.
同样也可以得出A2>B2>C2>D2>E2的结果;
最后的筛选得出有机会的马为:
A组 A1 A2 A3 A4 A5
B组 B1 B2 B3
C组 C1
D组 D1
E组 E1
待续......
假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少得比多少场才能知道跑得最快的5匹马。[也许至少会产生误解,换成最少,就是考虑你的算法的最坏情况下]
-------------------------------
1. 不考虑算法:
最少应该是在6场,
前五场是没问题的,第六场是A5和B1,C1,D1,E1跑一场,A5第一,第六场出结果.
2. 考虑算法:
前五场是一样的,第六场:A2,B2,C2,D2,E2跑一场.
同样也可以得出A2>B2>C2>D2>E2的结果;
最后的筛选得出有机会的马为:
A组 A1 A2 A3 A4 A5
B组 B1 B2 B3
C组 C1
D组 D1
E组 E1
待续......
87 楼
wuhua
2008-11-17
我的算法是
先跑第1轮
那么结果是
A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
D1 D2 D3 D4 D5
E1 E2 E3 E4 E5
上面是第1轮跑出的结果,跑第2轮的时候得出的结果是:
找出第2轮跑的最慢的马,然后跟第2梯队进行比赛。
我们假设跑的最慢的是
Horse slow = getSlowHorse();
Horse secondFast = getSecondFast(); // 获取第2梯队跑的最慢的马
slow 跟secondFast 进行比赛如果slow比secondFast 快,那么结果就出来了。7场就可以出结果了,5+1+1;
如果慢的话,则淘汰slow的那5匹马。
如此循环,直到筛选出最快的5匹马,最后的情况就是全面进行遍历筛选了。
剩下,不好算啊。
呵呵。复杂。
不过话又说回来,google的题,应该是发散的。
因为在赛场上,什么结果都会出现,真实客观的来说,没法得出结果。
如果全部一起跑哪还知道,没匹马跑出的速度在每场比赛得出的速度都不一样
先跑第1轮
那么结果是
A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
D1 D2 D3 D4 D5
E1 E2 E3 E4 E5
上面是第1轮跑出的结果,跑第2轮的时候得出的结果是:
找出第2轮跑的最慢的马,然后跟第2梯队进行比赛。
我们假设跑的最慢的是
Horse slow = getSlowHorse();
Horse secondFast = getSecondFast(); // 获取第2梯队跑的最慢的马
slow 跟secondFast 进行比赛如果slow比secondFast 快,那么结果就出来了。7场就可以出结果了,5+1+1;
如果慢的话,则淘汰slow的那5匹马。
如此循环,直到筛选出最快的5匹马,最后的情况就是全面进行遍历筛选了。
剩下,不好算啊。
呵呵。复杂。
不过话又说回来,google的题,应该是发散的。
因为在赛场上,什么结果都会出现,真实客观的来说,没法得出结果。
如果全部一起跑哪还知道,没匹马跑出的速度在每场比赛得出的速度都不一样
86 楼
wuhua
2008-11-17
superloafer 写道
应该是要7场。首先至少每一匹马都要比赛,所以一开始就先比五场;每一场比完后分别将当时那场的马按快慢顺序排好队。然后第六场每对最快的马比。这一场过后,将跑得最慢的那匹马的所在的队伍整队都淘汰掉(无需比了,最快的都跑得比别人慢),同时将第六场跑得最快的那个队的第二名拉出来比(因为只有这个队的马才有可能挤进第二到第五名之间)。第七场会出现几种情况:
1。在第六场才加进来的马在第七场正好跑了第五名,那么结果出来了
2.第二三四名的话,都还要继续比,不一一列举。但可以给个场次最多的,就是跑得最快的马都是同一个队的,要10场比赛才能见分晓。
1。在第六场才加进来的马在第七场正好跑了第五名,那么结果出来了
2.第二三四名的话,都还要继续比,不一一列举。但可以给个场次最多的,就是跑得最快的马都是同一个队的,要10场比赛才能见分晓。
然后第六场每对最快的马比。这一场过后,将跑得最慢的那匹马的所在的队伍整队都淘汰掉(无需比了,最快的都跑得比别人慢)
这个不一定吧。
可能跑的最慢的也比最快的队伍中第2名的要快
85 楼
Julien
2008-11-14
楼上Good Job!
84 楼
mayday85
2008-11-14
跑完6次后的结果(A到E、1到5)
A1 B1 C1 D1 E1
A2 B2 C2 D2 E2
A3 B3 C3 D3 E3
A4 B4 C4 D4 E4
A5 B5 C5 D5 E5
然后可以pass掉将近一半的马
B1 C1 D1 E1
A2 B2 C2 D2
A3 B3 C3
A4 B4
A5
为什么可以pass掉?比如C4,肯定比C4快的有C1C2C3A1B1,超过5匹,其它的自己去想
A1肯定最快也去掉了
第7场比较A2 B1 A3 B2 C1(斜线)
可以确定前3
第8场是第6场的后3、4名加上 第6场的第2名后面的3匹
最多8场
A1 B1 C1 D1 E1
A2 B2 C2 D2 E2
A3 B3 C3 D3 E3
A4 B4 C4 D4 E4
A5 B5 C5 D5 E5
然后可以pass掉将近一半的马
B1 C1 D1 E1
A2 B2 C2 D2
A3 B3 C3
A4 B4
A5
为什么可以pass掉?比如C4,肯定比C4快的有C1C2C3A1B1,超过5匹,其它的自己去想
A1肯定最快也去掉了
第7场比较A2 B1 A3 B2 C1(斜线)
可以确定前3
第8场是第6场的后3、4名加上 第6场的第2名后面的3匹
最多8场
83 楼
vivid_gxp
2008-11-12
superloafer 写道
应该是要7场。首先至少每一匹马都要比赛,所以一开始就先比五场;每一场比完后分别将当时那场的马按快慢顺序排好队。然后第六场每对最快的马比。这一场过后,将跑得最慢的那匹马的所在的队伍整队都淘汰掉(无需比了,最快的都跑得比别人慢),同时将第六场跑得最快的那个队的第二名拉出来比(因为只有这个队的马才有可能挤进第二到第五名之间)。第七场会出现几种情况:
1。在第六场才加进来的马在第七场正好跑了第五名,那么结果出来了
2.第二三四名的话,都还要继续比,不一一列举。但可以给个场次最多的,就是跑得最快的马都是同一个队的,要10场比赛才能见分晓。
1。在第六场才加进来的马在第七场正好跑了第五名,那么结果出来了
2.第二三四名的话,都还要继续比,不一一列举。但可以给个场次最多的,就是跑得最快的马都是同一个队的,要10场比赛才能见分晓。
分析结果漏洞百出。
其实赛5场就够了。弄个秒表计下。(玩笑)
相关推荐
这份名为“微软、谷歌、百度、腾讯,阿里等各大公司笔试面试题整理”的资源集合了全球顶级科技公司,包括微软、谷歌、百度、腾讯和阿里巴巴等,在招聘过程中的笔试和面试题目,对于软件程序员和求职者来说是极其宝贵...
7. **谷歌面试题**: 谷歌作为全球领先的互联网科技公司,面试题可能涵盖人工智能、大数据、分布式系统。面试者可能会被问到如何改进Google Maps的路线规划,或者设计一个大规模机器学习模型。 这些公司的面试题...
最后,文档的内容中提到了一个特定的个人或事件,即一个名为Julian的个人在名为CSDN的网站上开启了一个关于面试的讨论,并且在2019年10月23日发布了完整的答案集。这一点表明文档可能包含了社区讨论和互动的元素,...
LeetCode是一个在线平台,提供了大量的编程题目,主要涵盖算法和数据结构。通过刷LeetCode题目,开发者可以提升算法技能,同时熟悉面试中可能遇到的问题。LeetCode的题目难度从简单到困难,适合不同水平的学习者。...
谷歌的面试题往往强调算法和问题解决能力,例如,你可能需要解决一个涉及动态规划或图论的实际问题。此外,谷歌还会测试你的系统设计能力,如设计一个大规模分布式系统,或者如何处理高并发场景。对于软件工程师来说...
14. **编程规范与最佳实践**:遵循良好的编程习惯,了解Java编码规范,以及如何写出可读性高、可维护的代码,是评判一个优秀程序员的标准之一。 这些知识点只是冰山一角,实际面试中,面试官还会根据候选人的经验和...
课程流_微软、谷歌、百度、...如今,又即将迈入求职高峰期--10 月份,所以,也不免关注了 网上和我个人建的算法群 Algorithms1-12 群内朋友发布和讨论的最新面试题。特此整理, 以飨诸位。至于答案,望诸位共同讨论与思考。
”以及“Google的面试题和招聘流程介绍”,这表明文章将深入探讨Google的招聘策略、面试过程及应聘者需具备的关键技能。以下是对这一主题的详细分析和扩展。 ### Google招聘的核心要素 #### 1. 高标准的筛选机制 ...
这份名为"微软、谷歌、百度、腾讯等各大公司笔试面试题整理全版.rar"的压缩包文件,显然是一个集合了多个知名科技企业招聘过程中常见笔试和面试问题的资源。这其中包括了微软、谷歌、百度和腾讯等在全球范围内极具...
- **问题描述**:给定一个字符串,返回一个由单词组成的列表。单词被定义为由一个或多个空格分隔,或被引号包围的字符序列。例如,给定字符串 "Ihavea"fauxcoat"" 应返回列表 [I, have, a, fauxcoat]。 - **知识点**...
算法面试是软件行业求职过程中的一个重要环节,通常考察求职者逻辑思维和编程能力。常见的面试题型包括但不限于: 1. 排序算法:例如快速排序、归并排序、堆排序等。 2. 搜索算法:包括深度优先搜索(DFS)、广度优先...
1. **算法与数据结构**:Google笔试题和面试题通常会涉及到基础及高级的算法,如排序(快速排序、归并排序等)、查找(二分查找、哈希查找等)以及复杂的数据结构,如链表、栈、队列、树(二叉树、平衡树如AVL和红黑...
其次,"笔试面试题"这个文件可能涵盖了多种技术领域,不仅限于Java,也可能包括C++、Python、数据结构、算法等。在笔试环节,常见的题目类型有编程题,要求编写代码解决特定问题;还有选择题和填空题,考察对各种...
至于北电(Nortel Networks),虽然该公司已经不存在,但其历史上的面试题仍具有参考价值,尤其是在电信和网络技术领域。面试可能涉及到通信协议、网络架构和系统设计等。 中兴通讯的面试题可能包括通信协议、软件...
这些公司的面试题不仅考察候选人的技术能力,还包括逻辑思维、问题解决和创新能力。以下将详细探讨这些IT名企面试题所涉及的知识点。 1. **算法与数据结构**: - Microsoft、Google和Yahoo的面试中,数据结构和...
在IT行业中,尤其是在软件开发领域,面试通常会涵盖多个关键领域的知识,包括但不...在"Android-Interview-master"这个压缩包中,可能包含了上述各领域的面试题集和解答,这对于准备面试的开发者来说是一份宝贵的资源。
《程序员面试笔试算法与数据结构...总的来说,这份资料为准备面试的程序员提供了一个全面的算法和数据结构学习路径。通过系统学习,你可以增强自己的编程基础,提升面试竞争力,为未来的事业发展奠定坚实的基础。
例如,可能会让你找出一个数字序列的规律,或者设计一个能容纳最多鸡蛋的最优摔落策略。 对于外企,如Google、Microsoft等,面试通常更加注重基础扎实、算法熟练和问题解决能力。他们喜欢用白板编程来测试面试者在...