论坛首页 招聘求职论坛

面试RUBY AND RAILS的一次经历

浏览 22097 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-09-19  
有个前提,跑的快的马永远跑得快(现实中不太可能),算的是理论情况下如何快速找到前三个最快的。

zhang26chao 写道
D组第一输A,B,C组第一但不一定输A组第二和第三啊.


D组第一既然输给ABC组第一,那一定不是前三,所以直接delete.

A组第二有可能是第二,B组第一也有可能是第二,其它的都不可能是第二了。A2 - B1跑一次,快的是第二了。
慢的可能是第三,另外A3、B2、C1也可能是第三,所以这三个跑一次,快的就是第三了。

这样是
6 + 1 + 1 + 1 =9次了。
能不能再少一次呢?可以,A2、A3、B1、B2、C1一起跑一次,把2、3名一次找出来就齐了。
8次!



0 请登录后投票
   发表时间:2008-09-19  
呵呵,尝试算了一下,结果如下:

1、将36匹马分6小组,分别进行比赛,得出的比赛名次如下:
第一组:A1、 A2、A3、 A4、 A5、 A6
第二组:B1、 B2、B3、 B4、 B5、 B6
第三组:C1、 C2、C3、 C4、 C5、 C6
第四组:D1、 D2、D3、 D4、 D5、 D6
第五组:E1、 E2、E3、 E4、 E5、 E6
第六组:F1、 F2、F3、 F4、 F5、 F6

2、A1、 B1、 C1、 D1、 E1、 F1进行比赛,假设得出的排名为:A1、 B1、 C1、 D1、 E、1 F1,此时可以断定A1为最快的马,horse1 =  A1;
3、拿B1与(A2、A3、 A4、 A5、 A6)进行比赛,如果B1最快,那么horse2 = B1,并跳转到步骤4;如果A2最快,那么horse2 = A2 horse3 = B1,
此时共用的比赛次数为:8;
4、将C1与(A2、A3、 A4、 A5、 A6)进行比赛,如果C1或者A2最快,那么,再将C1或者A2与(B2、B3、 B4、 B5、 B6)进行比赛,
可以确定 horse3 = C1或者 horse3 =B2,此时,共用的比赛次数为:9次;

所以最后,比赛的次数为:8次或者9次。不知道对不对!
0 请登录后投票
   发表时间:2008-09-19  
结果就8次
1、分6组比出各组的1、2、3名
2、6组中的第一名进行夺冠
3、冠军所在组的2、3名,亚军组和季军组的1、2名同时出战决出季军亚军
0 请登录后投票
   发表时间:2008-09-19  
36只马,6只1组赛跑  (小组赛)                                       6轮
每组取第一名,然后将各组第一名取出,共6名赛跑(冠军组)               1轮
将冠军组的前2,3名(除去冠军) 和各自所在(小组赛时)的第 2名,
冠军所在小组赛时的2,3名 共6名,取出 赛跑                            1轮
取前2名 + 冠军
0 请登录后投票
   发表时间:2008-09-19  
其实用排除法就可以把过程看的很清楚了,前面的步骤一样,6组分别比之后6个第一名比,这时候,假设排名为:A1、 B1、 C1、 D1、 E1、F1,此时可以断定A1为最快的马,然后排除法,看那些不可能是前三:
1、D,E,F组全部排除;
2、A组后三名全部排除(前面至少已经有A1,A2,A3);
3、B组后四名全部排除(前面至少已经有A1,B1,B2);
4、C组其实后五名都可以排除(前面至少已经有A1,B1,C1);

剩下的就只有:A2、A3、B1、B2、C1,跑一次ok了
0 请登录后投票
   发表时间:2008-09-19  
怎么都没有考虑并列的情况
0 请登录后投票
   发表时间:2008-09-19  
qiyongjun 写道
你们有没有考虑某个小组实力很强,按真实成绩,前三名都是他们小组的。你们这种方法都不行的

可以的,前三名都是一个小组的情况,只有A组有这个可能,而A2,A3都参加了最后一轮的比赛。
0 请登录后投票
   发表时间:2008-09-19  
lzasi 写道
怎么都没有考虑并列的情况

并列更好说了,只取其中之一比就行。总之不需要比8次以上啊。
0 请登录后投票
   发表时间:2008-09-19  
lzasi 写道
怎么都没有考虑并列的情况

有并列的情况一样啊,把并列的马打包,要参赛的话派一个代表就可以了,要淘汰的话一起淘汰就可以了。
0 请登录后投票
   发表时间:2008-09-19  
zzm_fly2004 写道
呵呵,尝试算了一下,结果如下:

1、将36匹马分6小组,分别进行比赛,得出的比赛名次如下:
第一组:A1、 A2、A3、 A4、 A5、 A6
第二组:B1、 B2、B3、 B4、 B5、 B6
第三组:C1、 C2、C3、 C4、 C5、 C6
第四组:D1、 D2、D3、 D4、 D5、 D6
第五组:E1、 E2、E3、 E4、 E5、 E6
第六组:F1、 F2、F3、 F4、 F5、 F6

2、A1、 B1、 C1、 D1、 E1、 F1进行比赛,假设得出的排名为:A1、 B1、 C1、 D1、 E、1 F1,此时可以断定A1为最快的马,horse1 =  A1;
3、拿B1与(A2、A3、 A4、 A5、 A6)进行比赛,如果B1最快,那么horse2 = B1,并跳转到步骤4;如果A2最快,那么horse2 = A2 horse3 = B1,
此时共用的比赛次数为:8;
4、将C1与(A2、A3、 A4、 A5、 A6)进行比赛,如果C1或者A2最快,那么,再将C1或者A2与(B2、B3、 B4、 B5、 B6)进行比赛,
可以确定 horse3 = C1或者 horse3 =B2,此时,共用的比赛次数为:9次;

所以最后,比赛的次数为:8次或者9次。不知道对不对!

A3也有可能得第三,你第3步的推理是有问题的
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics