※ 引述《ds0319 (扑扑扑)》之铭言:
: 其实是面试的题目
: 只是我好想知道答案...
: 就是说今天有100只马,要找出最快的前三只
: 但是跑道只有三个,也就是说一次最多三只马下去跑分出胜负
: 快的马永远都会跑的比慢的马快
: 请问最少要跑几轮比赛
我的方法同前推文所写
(33+11+4+1+1) + 2 + 2 = 54次
详细一点为
(33+11+4+1+1) +(1+1)+(1+1)
使用方法为
1.先选出第一名
2.从输给第一名中选第二名
3.从输给第二名中选第三名
使用这个方法必须依序选出一二三名
否则不确定第一名,可能输给第一名的会非常的多
定义a与b ,a为输给第1名的,b为输给第2名的
找出第一名共5个阶段
其中第一阶段的余数并入第3阶段比
100
33....1 a b
11....0 a b
4.....0 a b
1.....1 a b
1.....0 a
共33+11+4+1+1轮
第5阶段操作的正确的话,可省去第4阶段的b
可想成45阶段选出第一名与第四名,第四名除去、二三名为a