参赛人数不是二的幂时,淘汰赛表里常出现空位置。轮空只让一方晋级,没有发生一场实际对局;把轮空也计为比赛会错误估计赛程长度。
本例使用十六个固定槽位和给定的种子排列,参赛者编号一至N,编号大于N的位置为空。每轮相邻槽位配对,双方都存在才比赛;只有一方就直接晋级,双方都空则保持空。示范胜负用能力值较高者获胜,同值取编号较小者。
参赛人数9,能力值{1: 22, 2: 27, 3: 18, 4: 27, 5: 45, 6: 40, 7: 49, 8: 12, 9: 33};槽位种子顺序[1, 16, 8, 9, 4, 13, 5, 12, 2, 15, 7, 10, 3, 14, 6, 11],超过人数的编号为空。
第1轮:左方 | 右方 | 是否真实比赛 | 晋级者 1 | None | False | 1 8 | 9 | True | 9 4 | None | False | 4 5 | None | False | 5 2 | None | False | 2 7 | None | False | 7 3 | None | False | 3 6 | None | False | 6 第2轮:左方 | 右方 | 是否真实比赛 | 晋级者 1 | 9 | True | 9 4 | 5 | True | 5 2 | 7 | True | 7 3 | 6 | True | 6 第3轮:左方 | 右方 | 是否真实比赛 | 晋级者 9 | 5 | True | 5 7 | 6 | True | 7 第4轮:左方 | 右方 | 是否真实比赛 | 晋级者 5 | 7 | True | 7 各人实际出场次数:{1: 1, 2: 1, 3: 1, 4: 1, 5: 3, 6: 2, 7: 3, 8: 1, 9: 3} 冠军7;真实比赛8场。这里的编号只用来辨认本例中的对象,不能当成另一份记录里的固定身份。阅读表格时先找到输入,再顺着运算顺序对照输出;空列表、零值和不存在的结果有不同含义,不能混用。表中分数保留精确值,小数显示仅为阅读方便。
记录每一场是否真实发生、谁晋级,以及每个参赛者的实际比赛次数。只要没有退赛且最终只剩一名冠军,真实比赛总数必须等于参赛人数减一,因为每场恰好淘汰一个人。
核对所有被淘汰者恰好输一次,冠军没有输过。统计工作时要分别列出轮数、槽位对数和实际比赛数,它们是三个不同概念。若采用双败或循环赛,人数减一的结论不再直接适用,必须按新的淘汰条件重新计算。
能力值决定胜负只是为了让演算可复核,不是在预测真实竞技结果。轮空、种子位置和真实对阵可能影响参赛者各自的比赛场数,固定对阵表也不等于所有参赛者经历完全相同。
本例是一套可复现的游戏机制练习,不依赖具体品牌或某个软件的默认设置。修改任何边界约定、输入参数或操作顺序后,应重新推演并保存中间状态。发现差异时先定位第一处不一致,再判断是规则不同还是计算错误,不要只把最终答案调整到看起来相同。