使用方法
- 「玩家人数」默认 4,允许 3 到 10 人;「抽牌张数」默认 16,允许 1 到 52 张。改数字或按回车立即重新洗牌。
- 「随机种子」默认 king,可写任意文字;按字符码累加折叠成 31 位整数后驱动洗牌,同一种子整局逐字复现。
- 发牌规则:洗好的牌按顺序第 1 张给玩家 1、第 2 张给玩家 2,循环到玩家 N 后再从玩家 1 开始,每人轮流取牌。
- 结果区首行是概要,随后逐行给出序号、玩家、牌面、是否 K、触发规则、剩余 K 数、剩余牌数与下一张是 K 的概率。
- 概率列是条件概率:抽过 t 张后剩 k 张 K、剩 n 张牌,下一张是 K 的概率就是 k/n;抽完整副牌后该列显示「—」。
- 抽到 K 的行会在「是否 K」列标「是」、规则列写「制定全场规则」——由中签者现场编一条本局有效的规则。
- 明细表默认显示 12 行,点「加载更多」展开全部;「导出 CSV」存成带字节序标记的文件,Excel 打开不乱码。
- 「复制结果」复制整段记录;「复制明细表」把当前表格按 TSV 复制,粘进表格软件列位不乱。
- 人数写成 2 或 11、张数写成 0 或 53、种子留空,都会给出针对该项的具体提示,不会拿上一局冒充本次输出。
这个国王杯能解决什么问题
第一类是「没带牌也想开局」。线下开局需要一副实体牌加一个愿意洗牌的人,线上局最常卡在道具上。本页一副 52 张牌随时洗好,默认种子 king 下第 5 张就翻出 ♥K,中签的玩家 1 当场制定全场规则,节奏和线下一致。
第二类是「到底还剩几张 K」算不清。酒过三巡没人记得牌堆里 K 剩几张,下一张的概率是升是降全凭感觉。本页每行都列出剩余 K 数与剩余牌数:默认第 4 张抽完时概率 4/48 = 8.3333%,第 5 张抽出 K 后掉到 3/47 = 6.3830%,一眼可查。
第三类是规则不统一吵架。A 是水瀑布还是倒酒、J 是制定规则还是提问大师,各地各桌各一套。本页内置一张常见口径的规则表,并在正文注明地区变体很多——开局前照着表念一遍,比临场争论省事。
第四类是复盘与举证。「上周那局我明明记得抽到过 K」这类争执,靠种子就能结案:记下种子 king、4 人、16 张,任何时候重放都是同一副牌序。
这个工具在本站也叫「国王杯」,牌序由线性同余发生器加 Fisher-Yates 洗牌一次排定,之后只按顺序发牌、不做任何二次随机,下面把洗牌与概率的口径讲清。
计算原理与变量说明
牌堆构成。一副牌 52 张 = 4 花色(♠ 黑桃、♥ 红桃、♦ 方块、♣ 梅花)× 13 点数(A、2 到 10、J、Q、K)。K 一共 4 张,每花色一张;本页的「中 K」即抽到这 4 张之一。
洗牌用 Fisher-Yates,随机源是站点既定 LCG。先把 0 到 51 编号堆成数组,从最后一张开始向前遍历:第 i 步用 s=(Math.imul(s,1103515245)+12345)&0x7fffffff 推进一次状态,取交换对象 j = Math.floor(s/2147483647*(i+1))%(i+1),把第 i 张与第 j 张对调。这个算法每个排列出现的概率严格相等,都是 1/52!;写满 51 次交换后整副牌序一次定型,发牌阶段不再掷任何随机数。种子 king 按字符码累加折叠为 425,整局牌序由它唯一决定。
为什么不用 s%(i+1) 直接取余。LCG 的低位比特周期短、随机性差,取余会让牌序出现可察觉的成组规律;先除以 2147483647(2³¹−1)再乘区间长度,用到的是高位比特。乘法必须写 Math.imul:状态最大接近 2³¹,乘 1103515245 后接近 2⁶¹,超过双精度精确表示的 2⁵³,普通乘法会丢低位、换浏览器牌序就对不上。
开局概率与条件概率。开局时下一张是 K 的概率是 4/52 = 0.0769230769 = 7.6923%。每抽一张,剩余 K 数与剩余牌数同步改变,下一张的概率按「剩余 K ÷ 剩余牌」重算——这是条件概率,不是独立概率。默认局第 4 张后是 4/48 = 8.3333%(没抽到 K,概率反升),第 5 张抽出 K 后是 3/47 = 6.3830%(概率回落),页面每一行都把这个数摆出来。
两个期望张数。把 48 张非 K 的牌看成被 4 张 K 切成 5 个间隔,对称性下每个间隔期望 48/5 = 9.6 张。所以第一张 K 的期望张数是 9.6 + 1 = 53/5 = 10.6 张;收齐 4 张 K 的期望张数是 52 − 9.6 = 42.4 张;最坏情况 4 张 K 全压在最后,抽满 52 张才收齐。抽 n 张里至少出现一张 K 的概率是 1 − C(48,n)/C(52,n),具体数值见对照表。
变量一共三个。玩家人数只改变发牌轮转(第 t 张给第 (t−1) mod N + 1 位玩家),不改牌序;抽牌张数只决定发到第几张为止;种子决定整副牌序。三者确定,整局唯一确定。
完整示例(数值仅作演示)
默认示例:4 位玩家、抽 16 张、种子 king(折叠值 425)。前 5 行逐字如下——第 1 张 ♥7 给玩家 1,规则「天堂」,剩 K 4 张、剩牌 51 张,下一张 K 概率 7.8431%;第 2 张 ♠5 给玩家 2,规则「男士喝」,4/50 = 8.0000%;第 3 张 ♥9 给玩家 3,规则「押韵接龙」,4/49 = 8.1633%;第 4 张 ♥A 给玩家 4,规则「水瀑布」,4/48 = 8.3333%;第 5 张 ♥K 给玩家 1,「是否 K」列标「是」、规则「制定全场规则」,剩余 K 掉到 3 张、剩牌 47 张,概率回落到 6.3830%。
把 16 张抽完:只有第 5 张一张 K,剩余 K 3 张、剩余牌 36 张,末行概率 3/36 = 8.3333%。整局 16 张按 玩家1 到 玩家4 轮转四轮,每人恰好 4 张。
换参数看规律。玩家人数改成 3,前 6 张的归属变成玩家 1、2、3、1、2、3,牌序本身不动;张数改成 52 时整副抽空,末行概率列显示「—」,此时 4 张 K 必然全部出现(抽 52 张至少一张 K 的概率是 100%)。
内置规则表与 K 的概率对照表
下表是本页内置的规则口径,K 固定为「制定全场规则」。这只是流传最广的版本之一:A 在部分变体里是「倒酒入中央杯」,J 与 Q 的职责也常与 K 对调,开局前请同桌确认。
| 点数 | 规则 | 说明 |
|---|---|---|
| A | 水瀑布 | 从抽到者开始顺时针喝水,右手边的人停了自己才能停 |
| 2 | 点人喝 | 指定任意一位玩家喝一口 |
| 3 | 自己喝 | 抽到者自己喝一口 |
| 4 | 女士喝 | 桌上所有女士各喝一口 |
| 5 | 男士喝 | 桌上所有男士各喝一口 |
| 6 | 一起喝 | 全体玩家各喝一口 |
| 7 | 天堂 | 所有人举手,最后一个举手的喝 |
| 8 | 找酒伴 | 指定一位玩家,之后每次你喝他都陪一口 |
| 9 | 押韵接龙 | 说一个词,顺时针轮流接龙,接不上的喝 |
| 10 | 分类举例 | 说一个类别,轮流举例,卡壳的喝 |
| J | 问题大师 | 之后谁被你提问,谁喝一口 |
| Q | 三秒喝完 | 被指到的人三秒内喝完一小口 |
| K | 制定全场规则 | 中签者现场编一条本局有效的全场规则 |
下表是抽 n 张牌里出现至少一张 K 的概率,公式为 1 − C(48,n)/C(52,n)。n = 1 时就是开局的 7.6923%;n = 26 时已高达 94.4778%;n = 52 时必然出现。
| 抽牌张数 n | 无 K 概率 | 至少一张 K 概率 |
|---|---|---|
| 1 | 92.3077% | 7.6923% |
| 4 | 71.8737% | 28.1263% |
| 13 | 30.3818% | 69.6182% |
| 26 | 5.5222% | 94.4778% |
| 39 | 0.2641% | 99.7359% |
| 52 | 0.0000% | 100.0000% |
结果边界与舍入说明
- 玩家人数必须是 3 到 10 的整数:写成 2 或 11 时提示超出范围;写成 4.5 时提示必须是整数。
- 抽牌张数必须是 1 到 52 的整数;写成 0 或 53 时提示超出范围,写成 12.5 时提示必须是整数。
- 种子留空时提示不能为空;种子可以是任意文字,折叠后恒在 0 到 2147483647 之间。
- 概率列统一保留 4 位小数百分比,例如 4/51 = 7.8431%;分母为 0(牌堆抽空)时显示「—」,不显示 Infinity 或 NaN。
- 不放回抽取:每张牌只会出现一次,抽过的牌不会回到牌堆;这正是概率列随抽牌单调变化的原因。
- 「抽到 K 数」上限 4;牌序在洗牌阶段一次定型,发牌阶段不做任何二次随机,所以不存在「这张不满意重发」。
- LCG 洗牌适合酒桌与教学;涉及金钱局请用实体牌,本页不提供公证保证。
- 页面不联网、不写 localStorage,人数、张数与种子只参与本次洗牌。
常见问题
同一个种子为什么每次洗完的牌序都一样?换一副要怎么换?
洗牌是确定性的:种子按字符码折叠成 31 位整数作状态起点,51 次 Fisher-Yates 交换的每一步都由(s × 1103515245 + 12345)对 231 取模推进。种子 king 折叠为 425,第 1 张必然是 ♥7。想换牌序就改种子、人数或张数——注意改人数或张数不会重洗,只改发给谁、发到第几张。
为什么洗牌要用 Fisher-Yates,直接随机打乱不行吗?
Fisher-Yates 的关键是每个排列概率严格相等(1/52!),没有偏置。随手写的「随机两两交换 N 次」次数不够时偏置明显,次数够时又浪费随机数。本页用 LCG 提供交换下标,51 步完成一次无偏洗牌,且种子可复现——这是酒桌工具最需要的两个性质。
抽到 K 之后,下一张是 K 的概率是升还是降?
降。K 的总数固定 4 张,抽走一张就只剩 3 张,分子变小;默认局第 5 张抽出 ♥K 后概率从 4/48 = 8.3333% 掉到 3/47 = 6.3830%。反过来,抽到的不是 K 时分子不变、分母变小,概率会缓慢上升,第 4 张后的 8.3333% 就是这种情况。
「第一张 K 的期望张数是 10.6」是什么意思?我第 5 张就抽到了,正常吗?
完全正常。10.6 是大量重复实验的平均值:48 张非 K 被 4 张 K 切成 5 个间隔,每个间隔期望 9.6 张,第一个 K 前平均有 9.6 张非 K,所以期望位置是 10.6。单局抽到第 5 张只是低于均值的一次抽样,不代表牌序有问题。
收齐 4 张 K 的期望张数是 42.4,是不是抽到 42 张就一定收齐?
不是。42.4 是平均值,实际可能早很多也可能晚很多;最坏情况 4 张 K 全在最后,要抽满 52 张才收齐。想稳妥收齐就把张数设到 52——那时至少一张 K 的概率是 100%,四张必然都出现过。
内置规则表是标准规则吗?为什么和别人玩的不一样?
不是标准,只是一种常见口径。这个游戏的地区变体非常多:A 在部分玩法里是倒酒入中央杯、集齐四张 K 的人喝光;J 与 Q 的职责常与 K 对调;4、5、6 的分组也各有说法。本页把 K 固定为「制定全场规则」,同桌开局前照着表念一遍确认即可。
经典玩法什么时候结束?本页为什么用张数控制?
经典玩法是抽到第 4 张 K 时终局,按期望算大约在第 42.4 张。本页用张数控制是为了让演示长度可预期——想看终局就把张数一路加到 K 抽齐为止,也可以直接设 52 张看完整一副。末行的「抽到 K」统计栏会告诉你已经收了几张。
输入的数据会上传吗?工具免费吗?
免费,无需注册。所有洗牌与计算都在当前浏览器本地完成,页面不联网、不写 localStorage,人数、张数与种子只用于本次开局。