Skip to content
Go back

赛马问题——25匹马5条跑道找前三需几场?

赛马问题:25 匹马 5 条跑道,找前三需 7 场

一句话结论(30s)

结论先行:25 匹马 5 条跑道找前三,最少 7 场。本质是”分组缩小候选集”——因为先 5 场分组赛排出组内名次,再 1 场冠军赛锁定全局第一,然后靠淘汰逻辑把候选压缩到恰好 5 匹,最后 1 场决赛解决余量。

核心原理(2min)

5 场分组赛后,取每组头名 A1、B1、C1、D1、E1 赛第 6 场(冠军赛),A1 必为全局第一。第二名只能在 A2(同组输给 A1)与 B1(冠军赛输给 A1)中产生,第三名候选为 A2、A3、B1、B2、C1。关键淘汰逻辑:冠军赛排第 4、5 的 D1、E1 及其整组全部淘汰,C 组也只保留 C1,因为任何被淘汰的马前面都站着两个以上确定的更快的马,不可能进前三。最终恰好剩 5 匹候选,第 7 场取前两名加 A1 即得前三。

底层深入(5-10min)

问题

25 匹马,跑道同时只能跑 5 匹(没有计时器,只有名次)。最少比几场能确定最快的 3 匹?

步骤一:分组赛(5 场)

25 匹马分成 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

💭 思考:为什么第一步是先分组赛?——因为跑道一次只能跑 5 匹、且没有计时器,快慢只能靠两两比赛的相对名次传递;先把 25 匹拆成 5 组比,才能拿到组内名次,为后续”跨组比较”提供依据。

步骤二:冠军赛(第 6 场)

5 个组的第一名比一场:A1, B1, C1, D1, E1

结果(假设):A1 > B1 > C1 > D1 > E1

A1 是全 25 匹马中最快的(所有比的、没比的,A1 都赢过)。

💭 思考:为什么 A1 一定是全局第一?——因为 A1 赢过同组 A2A5,又在冠军赛赢了各组第一 B1E1;而其他任何马要么输给它的组内第一、要么就是它的组内第一,传递性保证 A1 比所有马都快。

步骤三:淘汰分析

淘汰推理:

A1 是最快的 ✓

第二名候选: A2(同组输给 A1),B1(冠军赛输给 A1)
  → D1, E1 被淘汰(冠军赛排第4、5,不可能前3)

第三名候选: A2, B1, A3, B2, C1
  → C2-C5, D2-D5, E2-E5 全被淘汰(同组有比它们快的,且那些比它们快的已经排到了冠军赛第3或更后)

关键淘汰逻辑:如果一匹马所在的组有两个比它快的马,且这两个比它快的已经在冠军赛中排到第二或第三,那这匹马不可能进前三。

💭 思考:为什么 D1、E1 及 D、E 整组都要淘汰?——因为 D1、E1 在冠军赛已经输给 A1、B1、C1 三匹,前面站着至少 3 匹更快的马,绝无进前三的可能;组内更慢的 D2D5、E2E5 更是如此。

步骤四:最终决赛(第 7 场)

候选者:A2, A3, B1, B2, C1(恰好 5 匹)

这 5 匹赛第 7 场 → 结果排序 → 取前 2 + 已知的 A1 = 前三名。

总计 7 场。

💭 思考:为什么总场数是 7 而不是 6 或 8?——因为 5 场分组 + 1 场冠军赛是锁定第一的必需成本(6 场只能定出第一名),而二三名的 5 个候选必须再比一场才能排出顺序,所以 7 场是下限。

推广:其他数量的赛马

跑道前 K 名最少场次
25537
25516(每组第一比冠军赛即可)
648411

核心思想:用分组缩小候选范围,用冠军赛锁定第一,用淘汰逻辑压缩候选集,最后决赛解决余量。

章末提问

追问 1:为什么是 7 场,能再少吗?

回答思路:结论是不能少于 7 场,因为 5 场分组赛排出组内名次是必须的,第 6 场冠军赛才能锁定全局第一(此时只定了第一名),二三名的 5 个候选仍需第 7 场才能排出顺序,所以 7 场是下限。

追问 2:为什么 D 组、E 组的马要整组淘汰?

回答思路:结论是它们不可能进前三,因为 D1、E1 在冠军赛已输给 A1、B1、C1 三匹更快的马,连组内第一都进不了前三,组内更慢的马更不可能;淘汰标准是”前面是否站着至少两匹确定的更快的马”。

追问 3:第二名为什么只能在 A2 和 B1 中产生?

回答思路:结论是除 A1 外没有马能排在 A2 或 B1 之前进前二——A2 是 A 组第二(只输 A1),B1 是冠军赛第二(只输 A1),其余组第一 C1、D1、E1 都输给了 B1,组内其他马更慢,所以第二名的候选只有 A2、B1。


Share this post on:

Previous Post
高楼扔鸡蛋——动态规划的逆向思维
Next Post
蓝眼睛悖论——Common Knowledge的归纳推理