画鬼脚真的公平吗?起点位置 × 终点选项矩阵分析
是时候回收上一篇埋下的悬念了 —— "画鬼脚其实并不公平"。第一版文章发出去后,评论里收到了很好的提醒:"这要看情况吧,一中奖四空的时候,和五个菜各不相同的时候,结果会一样吗?" 没错。所以这次我用 起点位置 × 终点选项 5×5 矩阵做了精准分析。在 5 种实战场景下,连 "谁该从哪里出发更有利" 都给你一一拆解清楚 🪜。
1先用一句话总结画鬼脚算法
画鬼脚的结果是怎么定下来的,其实特别简单。在 N 条竖线上随机画 K 条横线,从顶端出发的人每碰到一条横线,就和相邻的旁边那条线交换(swap)。就这样。
所以画鬼脚本质上就是"一连串的 swap",结果 100% 由横线的数量和位置决定。横线越多,位置就被打乱得越厉害;横线越少,就越容易到达离起点近的地方。
210 万次模拟 —— 令人震惊的结果
实验设置:
- 竖线 5 条(参与者 5 人)
- 随机摆放 5 条横线(仅在相邻竖线之间,同一行不放两条 X)
- 变换 Mulberry32 PRNG 种子,重复 10 万次
- 测量各起点位置 → 终点位置的分布
理论上每个终点位置都应该正好是 20.0%。可实际结果呢?
第 3 号格子是 23.7%,第 5 号格子是 16.3%。(23.7 - 16.3) / 16.3 = 约 45%。也就是说,中间格子被抽中的频率约为两端的 1.45 倍。"画鬼脚很公平"这个信念上,被戳出了一个大洞。
3为什么中间更容易被抽中 —— 数学原因
这可不是单纯的偶然。用直觉拆解一下是这样的:
原因 1:中间格子"两边都能接收 swap"
第 1 号格子即使发生 swap,也只能从第 2 号过来。第 5 号格子也只能从第 4 号过来。可第 3 号格子从第 2 号或第 4 号哪边都能到达。意思就是入口多了一倍。
原因 2:两端"只能接收一侧的 swap"
横线少的时候,从两端格子出发的人经历的 swap 少,很可能原样到达。所以出发位置在两端,结果也容易落在两端。而中间出发的人会被东拉西扯一通,最后还是倾向于被重新拽回中央。
原因 3:横线越少,偏差越大
横线 K 无限增多时,所有位置都被均匀地 swap,最终收敛到均匀分布。可我们实际画的 K = 5~10 这种水平,处于"部分随机"状态,所以偏差就原封不动地留下来了。
4横线数量带来的偏差变化
我把横线从 5 条 → 50 条逐步增加,测量了分布是怎么变化的:
| 横线 K | 第1号 | 第2号 | 第3号 | 第4号 | 第5号 | 偏差程度 |
|---|---|---|---|---|---|---|
| 5 条 | 17.2% | 21.8% | 23.7% | 21.0% | 16.3% | ⚠️ 大 |
| 10 条 | 18.4% | 20.6% | 21.9% | 20.5% | 18.6% | 中等 |
| 15 条 | 19.3% | 20.2% | 20.9% | 20.3% | 19.3% | 小 |
| 30 条 | 19.8% | 20.1% | 20.2% | 20.1% | 19.8% | 几乎没有 |
| 50 条 | 19.95% | 20.02% | 20.06% | 20.01% | 19.96% | ✅ 均匀 |
看出规律了吧?横线一旦超过人数的 3 倍(15 条),偏差几乎就消失了;达到 10 倍(50 条)时,几乎收敛为完美的均匀分布。也就是:
5 人画鬼脚的话,至少要画 15 条以上才能保证公平性。
5真正的核心 —— 按起点位置看终点分布(Transition Matrix)
到这里为止都是综合统计。可画鬼脚真正的公平性,得看"我从第 1 号位置出发时会到达哪里"才能弄清楚。我把同样的 10 万次模拟按起点位置分开整理了一下:
| 起点 ↓ / 终点 → | 到第1号 | 到第2号 | 到第3号 | 到第4号 | 到第5号 |
|---|---|---|---|---|---|
| 从第 1 号出发 | 36% | 30% | 18% | 11% | 5% |
| 从第 2 号出发 | 25% | 26% | 26% | 16% | 7% |
| 从第 3 号出发 | 14% | 22% | 28% | 23% | 13% |
| 从第 4 号出发 | 7% | 16% | 26% | 26% | 25% |
| 从第 5 号出发 | 5% | 11% | 18% | 30% | 36% |
这个矩阵才是画鬼脚真正的本质。4 个核心发现:
- ① 停留在自身位置的概率最高 · 看对角线上的粗体数字,第 1 号→第 1 号 36%,第 5 号→第 5 号 36%。也就是说横线一少就几乎不动
- ② 从两端出发偏差最大 · 从第 1 号出发的人,到达第 5 号的概率只有 5%。实际上有一半的终点根本去不了
- ③ 从中间(第 3 号)出发最随机 · 分布在 13~28% 之间,相对均匀。这是交给"真运气"的位置
- ④ 左右对称结构 · 第 1 号↔第 5 号、第 2 号↔第 4 号像镜像一样对称。也就是说左端和右端的位置价值完全相同
65 种实战场景 —— 谁从哪里更有利?
读者评论里有个很好的提醒 —— "一中奖四空时,和五个菜各不相同时,结果不可能一样啊。" 没错。下面把上面的矩阵套用到 5 种实战情境里分析:
📍 场景 1 · 聚餐选菜 5 个(全部不同选项)
例:第 1 号=韩餐、第 2 号=中餐、第 3 号=日料、第 4 号=西餐、第 5 号=小吃。5 人随机分到起点位置 1~5。
- 最常被抽中的菜:日料(第 3 号) —— 综合到达率 23.7%
- 最少被抽中的菜:韩餐、小吃(第 1 号/第 5 号) —— 16~17%
- 小技巧:把喜欢的菜放在中间(第 3 号)+ 自己的起点位置也选中间 → 去那道菜的概率 28%
- 想公平运营的话:把菜的位置再洗一次牌(随机摆放)
📍 场景 2 · 一中奖四空(决定谁请客,中奖在中间)
例:第 3 号位置放一个"中奖(=请客的人)",其余全部是"空(=不请客的人)"。
| 起点位置 | 到达中奖的概率 | 解读 |
|---|---|---|
| 从第 1 号出发 | 18% | 有利(被抽中概率低) |
| 从第 2 号出发 | 26% | 中等 |
| 从第 3 号出发 | 28% | ⚠️ 最容易被抽中 |
| 从第 4 号出发 | 26% | 中等 |
| 从第 5 号出发 | 18% | 有利 |
小技巧:如果能选起点位置,就抢占第 1 号或第 5 号。不被抽中的概率 82%(比理论上的 80% 略有利)。
📍 场景 3 · 一中奖四空(中奖在端点时)
例:第 1 号位置放"中奖",其余为空。
| 起点位置 | 到达中奖的概率 | 解读 |
|---|---|---|
| 从第 1 号出发 | 36% | ⚠️ 压倒性不利 |
| 从第 2 号出发 | 25% | 不利 |
| 从第 3 号出发 | 14% | 中等 |
| 从第 4 号出发 | 7% | 有利 |
| 从第 5 号出发 | 5% | 压倒性有利 |
从中奖位置对面的那一端出发,不被抽中的概率 95%。也就是说"中奖在哪里 + 我从哪里出发"都会左右结果。把模拟可视化来看,两端最不对称。
📍 场景 4 · 四空一豁免(值日/惩罚豁免)
例:5 名打扫值日的人中只有 1 人豁免。假设"豁免"位置在中间(第 3 号)。
- 到达豁免概率最高的起点位置:第 3 号(28%) ⭐
- 到达豁免概率最低的起点位置:第 1 号/第 5 号(18%)
- 小技巧:如果事先知道豁免位置,就从与豁免位置同一条线出发
- 公平运营:豁免位置和起点位置都随机摆放后再开始画鬼脚
📍 场景 5 · 分两队(2 人 vs 3 人)
有两种摆放方式。结果差异极其鲜明:
方式 A —— 相邻摆放:[A, A, B, B, B]
- 起点位置第 1、2 号 → 去 A 队的概率合计约 59%
- 起点位置第 4、5 号 → 去 B 队的概率合计约 76%
- ⚠️ 起点位置决定了约 70% 的结果 → 画鬼脚几乎没有意义
方式 B —— 交叉摆放:[A, B, A, B, B]
- 所有起点位置到达 A/B 的概率几乎均匀
- ✅ 这才是真正的随机分队
- 小贴士:队伍结果标签不要相邻摆放,要交叉(alternating)摆放
① 横线数量:人数 × 3 以上
② 起点位置:随机洗牌
③ 终点选项:随机摆放(尤其是中奖/豁免位置)
只要这 3 项没有全部做到,画鬼脚就只是"表面随机"而已。
7用实际游戏画面看两个场景
把上面的矩阵分析原样搬到 LuckyPlz 画鬼脚画面里,用两个场景来拆解。看看仅仅是人和终点选项的摆放变了,非对称的强度会发生怎样的变化。
📍 Case A · 5 位朋友乔迁聚会 —— 两个活、三个豁免
终点选项:豁免 / 洗碗 / 豁免 / 打扫 / 豁免。5 人中有 2 人会被分到活的情况。
▲ Case A · 豁免 3 + 洗碗 + 打扫 / 中活两端 41%,中间 45%
| 参与者 | 被分到活的概率 | 特征 |
|---|---|---|
| 🟠 政国 第1号 | 41% | 安全 · 被分到大多是洗碗 |
| 🔵 兴民 第2号 | 42% | 中等 |
| 🟡 菲利克斯 第3号 | 45% ⚠️ | 最危险(中间) |
| 🩷 善太 第4号 | 42% | 中等 |
| 🟢 相国 第5号 | 41% | 安全 · 被分到大多是打扫 |
📍 Case B · 朋友们去 KTV —— 第一首一人唱(一中奖四豁免)
终点选项:豁免 / 第一首 / 豁免 / 豁免 / 豁免。5 个人聚在 KTV,要定谁来唱第一首的情况。看看结果集中在一个位置时,非对称会变得多么鲜明。
▲ Case B · 第一首一个位置 + 豁免四个位置 / 两端差距约 2.7 倍
| 参与者 | 唱第一首的概率 | 特征 |
|---|---|---|
| 🟠 卡丽娜 第1号 | 30% ⚠️ | 最危险(紧挨第一首) |
| 🔵 温特 第2号 | 26% | 危险(第一首位置原地) |
| 🟡 张元英 第3号 | 22% | 中等 |
| 🩷 哈妮 第4号 | 16% | 安全 |
| 🟢 彩源 第5号 | 11% ✅ | 最安全(89% 豁免) |
🆚 两个 Case 一眼对比
| 对比 | Case A(2 个活) | Case B(1 个第一首) |
|---|---|---|
| 最大差距 | 4 个百分点 | 19 个百分点 |
| 最危险的位置 | 中间 | 第一首旁边(第 1 号) |
| 最安全的位置 | 两端 | 对面那一端(第 5 号) |
| 起点位置的影响力 | 约 10% | 约 70% |
同样的画鬼脚、同样的 5 个人,终点选项怎么摆放,结果的公平性就会从几乎均匀一路拉开到 2.7 倍非对称。豁免、中奖这种单一结果越是集中在一个位置,起点位置就越压倒性地左右结果 —— 这才是画鬼脚真正的本质。
8那么画鬼脚到底该怎么用
3 条结论:
方法 1:铺足够多的横线(人数 × 3 以上)
最正统。5 人就 15 条以上,8 人就 24 条以上。只是会把画面塞得密密麻麻,视觉上可能有点憋。
方法 2:起点位置也随机打乱
如果横线要画得少,就用把起点位置本身再洗一次牌的方式来弥补。在画鬼脚上写 1~5 之前,先把 1~5 的卡片随机打乱再开始。
方法 3:直接用轮盘(最推荐)
轮盘只要扇区面积相同,就在数学上 100% 均匀。不用像画鬼脚那样操心"横线铺够了没"。又快又公平,搞定。
🎯 打开轮盘 →不过画鬼脚也确实有自己的魅力。"下落过程中的紧张感"是轮盘没有的。朋友之间想活跃气氛的话,画鬼脚也是个相当不错的选择。只是,横线一定要铺足。
🪜 打开画鬼脚 →9实战指南 —— 按人数推荐横线数
| 人数 | 最少横线 | 推荐横线 | 还是推荐轮盘吗? |
|---|---|---|---|
| 3 人 | 9 条 | 15 条 | 否(画鬼脚 OK) |
| 4 人 | 12 条 | 20 条 | 否 |
| 5 人 | 15 条 | 25 条 | 视情况而定 |
| 6~8 人 | 人数×3 | 人数×5 | 是(轮盘更方便) |
| 9 人+ | 人数×3 | 人数×5 | 是(画鬼脚可读性 ↓) |
顺便说一句,LuckyPlz 画鬼脚可以直接调节横线数量。默认值会按人数 × 2~3 左右自动计算,但可以用滑块往上加。在意公平性的场合,就把滑块一口气推到底再开始吧。
10常见问题
Q. 那到目前为止用画鬼脚做的决定全都不公平?
严格来说是的,但偏差也就"中间格子多被抽中 50%"这种程度,日常用并没什么大问题。聚餐选菜这种就 OK。不过,涉及大钱/大负担的决定就建议用轮盘。
Q. 一中奖四空时,如果能自己定起点位置,哪里好?
如果事先知道中奖位置,就从中奖位置对面的那一端出发。正如上面场景 3 看到的,第 1 号位置有中奖时,从第 5 号出发到达概率仅 5%,实际上很安全。但如果不知道"中奖位置"、只能定起点位置,那中间(第 3 号)最安全 —— 无论中奖在哪个位置,到达概率都在 13~28% 之间,比较平均。
Q. 定 5 个菜时,喜欢的菜该放中间还是放两端?
中间是答案。正如场景 1 所见,中间到达概率 23.7% vs 两端 16~17%。把"非吃不可的菜"放在第 3 号位置,起点位置也选中间(第 3 号),去那道菜的概率能升到 28%。在其他 4 人散落在第 1/2/4/5 号的状态下,只有你从第 3 号出发会更有利。
Q. 分两队时结果标签该怎么摆放?
一定要交叉(alternating)摆放。[A, A, B, B, B] 这种相邻摆放会让起点位置左右结果达 70%,画鬼脚实际上就没意义了。用 [A, B, A, B, B] 这样的交叉摆放,所有起点位置去 A/B 的概率就几乎均匀了。参考场景 5 的表格。
Q. 那 LuckyPlz 画鬼脚这些校正都加进去了吗?
当前版本(1) 横线自动充分摆放 +(2) 起点位置洗牌选项是有的。(3) 终点选项洗牌则是按用户自己输入的顺序摆放的结构,所以得自己随机输入。下次更新会加入"终点洗牌"开关。
Q. 自己定起点位置不是更有利吗?
没错。抢占中间位置(5 人就是第 3 号)统计上更容易被抽中。所以 LuckyPlz 画鬼脚加了一个起点位置自动洗牌的选项(默认 ON)。把它关掉,上面的偏差就会原样出现。
Q. 横线为 0 条会怎样?
就是按起点位置原样到达。也就是不洗牌,出发顺序原封不动成为结果。100% 偏差(= 其实根本没发生洗牌)。
Q. 别的网站的画鬼脚也有同样的偏差吗?
嗯。这是画鬼脚算法本身的特性,在哪里跑、只要横线不够,都会出现相同的偏差。这不是网站代码的问题,而是数学上的局限。
Q. 模拟代码能公开吗?
是 JavaScript Mulberry32 PRNG + 简单的 swap 逻辑。整理干净后,会在下一篇文章公开 GitHub 链接。想自己跑跑看的朋友,请稍等。