博饼规则
此文章将遍地锦、六杯黑合称“六子”,六杯红简称“六红”,五子登科简称“五子”。
且符合多个条件的结果按照更高条件计算(如四进带一秀算作四进不算一秀)。
预备知识
排列
我们设 A n m A_n^m Anm 表示从 n n n 个数中选出 m m m 个数的方案数(不同顺序记作不同方案)。
则第 1 1 1 次有 n n n 种选择,第 2 2 2 次有 n − 1 n-1 n−1 种选择,……,第 m m m 次有 n − m + 1 n-m+1 n−m+1 种选择。
因此 A n m = n ! ( n − m ) ! A_n^m=\dfrac{n!}{(n-m)!} Anm=(n−m)!n!。
组合
若设 C n m C_n^m Cnm 表示从 n n n 个数中选出 m m m 个数的方案数(不同顺序记作同一方案)。
对于同一方案,一共有 A m m = m ! A_m^m=m! Amm=m! 种顺序。
因此 C n m = A n m A m m = n ! ( n − m ) ! m ! C_n^m=\dfrac{A_n^m}{A_m^m}=\dfrac{n!}{(n-m)!m!} Cnm=AmmAnm=(n−m)!m!n!。
计算过程
状元插金花
2 2 2 个 1 1 1 排在不同位置共有 C 6 2 = 15 C_6^2=15 C62=15 种方案。
因此 P ( 状元插金花 ) = 15 6 6 = 15 46656 = 5 15552 ≈ 0.032 % P(状元插金花)=\dfrac{15}{6^6}=\dfrac{15}{46656}=\dfrac{5}{15552}\approx0.032\% P(状元插金花)=6615=4665615=155525≈0.032%。
六红
只有 1 1 1 种方案。
因此 P ( 六红 ) = 1 6 6 = 1 46656 ≈ 0.002 % P(六红)=\dfrac{1}{6^6}=\dfrac{1}{46656}\approx0.002\% P(六红)=661=466561≈0.002%。
六子
5 5 5 种方案,即都为 1 , 2 , 3 , 5 , 6 1,2,3,5,6 1,2,3,5,6。
因此 P ( 六子 ) = 5 6 6 = 15 46656 ≈ 0.010 % P(六子)=\dfrac{5}{6^6}=\dfrac{15}{46656}\approx0.010\% P(六子)=665=4665615≈0.010%。
五红
不为 4 4 4 的那一位有 5 5 5 种填法,同时有 6 6 6 种顺序。
因此 P ( 五红 ) = 5 × 6 6 6 = 30 46656 = 5 7776 ≈ 0.064 % P(五红)=\dfrac{5\times6}{6^6}=\dfrac{30}{46656}=\dfrac{5}{7776}\approx0.064\% P(五红)=665×6=4665630=77765≈0.064%。
五子
相同的有 5 5 5 种填法,不同的那一位也有 5 5 5 种填法。
共有 6 6 6 种顺序。
因此 P ( 五子 ) = 5 × 5 × 6 6 6 = 150 46656 = 25 7776 ≈ 0.322 % P(五子)=\dfrac{5\times5\times6}{6^6}=\dfrac{150}{46656}=\dfrac{25}{7776}\approx0.322\% P(五子)=665×5×6=46656150=777625≈0.322%。
普通状元(四红)
有 5 2 5^2 52 种填法, C 6 2 = 15 C_6^2=15 C62=15 种顺序。
但同时要减去状元插金花的情况。
因此 P ( 普通状元 ) = 5 2 × 6 6 6 − 5 15552 = 360 46656 = 5 648 ≈ 0.772 % P(普通状元)=\dfrac{5^2\times6}{6^6}-\dfrac{5}{15552}=\dfrac{360}{46656}=\dfrac{5}{648}\approx0.772\% P(普通状元)=6652×6−155525=46656360=6485≈0.772%。
对堂
依次考虑每个数。
1 1 1 有 6 6 6 个空位可选, 2 2 2 有 5 5 5 个空位可选, 3 3 3 有 4 4 4 个空位可选, 4 4 4 有 3 3 3 个空位可选, 5 5 5 有 2 2 2 个空位可选, 6 6 6 有 1 1 1 个空位可选,共 6 ! = 70 6!=70 6!=70 种(或 A 6 6 A_6^6 A66 种)。
因此 P ( 对堂 ) = 720 6 6 = 720 46656 = 5 324 ≈ 1.54 % P(对堂)=\dfrac{720}{6^6}=\dfrac{720}{46656}=\dfrac{5}{324}\approx1.54\% P(对堂)=66720=46656720=3245≈1.54%。
三红
剩余的 3 3 3 个数有 5 3 5^3 53 种填法,且有 C 6 3 = 20 C_6^3=20 C63=20 种顺序。
因此 P ( 三红 ) = 5 3 × 20 6 6 = 2500 46656 = 625 11664 ≈ 5.36 % P(三红)=\dfrac{5^3\times20}{6^6}=\dfrac{2500}{46656}=\dfrac{625}{11664}\approx5.36\% P(三红)=6653×20=466562500=11664625≈5.36%。
四进
相同的 4 4 4 个数有 5 5 5 种填法,剩余的 2 2 2 个数有 5 2 5^2 52 种填法,且有 C 6 2 = 15 C_6^2=15 C62=15 种顺序。
因此 P ( 四进 ) = 5 × 5 2 × 15 6 6 = 1875 46656 = 625 15552 ≈ 4.02 % P(四进)=\dfrac{5\times5^2\times15}{6^6}=\dfrac{1875}{46656}=\dfrac{625}{15552}\approx4.02\% P(四进)=665×52×15=466561875=15552625≈4.02%。
四进带二举
相同的 4 4 4 个数有 5 5 5 种填法,且有 C 6 2 = 15 C_6^2=15 C62=15 种顺序。
因此 P ( 四进带二举 ) = 5 × 15 6 6 = 75 46656 = 25 15552 P(四进带二举)=\dfrac{5\times15}{6^6}=\dfrac{75}{46656}=\dfrac{25}{15552} P(四进带二举)=665×15=4665675=1555225。
二举
剩余的 4 4 4 个数有 5 4 5^4 54 种填法,且有 C 6 2 = 15 C_6^2=15 C62=15 种顺序。
同时要减去四进带二举的情况。
因此 P ( 二举 ) = 5 4 × 15 6 6 − 25 15552 = 9300 46656 = 775 3888 ≈ 19.93 % P(二举)=\dfrac{5^4\times15}{6^6}-\dfrac{25}{15552}=\dfrac{9300}{46656}=\dfrac{775}{3888}\approx19.93\% P(二举)=6654×15−1555225=466569300=3888775≈19.93%。
四进带一秀
先不考虑顺序。
第一个格子只能填
4
4
4,有
1
1
1 种情况;
第二至五个格子需要相同,可以填除 4 4 4 以外的任意数,有 5 5 5 种情况;
第六个格子既不能填 4 4 4,也不能与第二至五个格子重复,有 4 4 4 种情况。
若考虑顺序, 4 4 4 可以填在 6 6 6 种位置,最后一个格子上的数可以填在剩余的 5 5 5 种位置。
因此 P ( 四进带一秀 ) = 6 × 5 × 5 × 4 6 6 = 600 46656 = 25 1944 P(四进带一秀)=\dfrac{6\times5\times5\times4}{6^6}=\dfrac{600}{46656}=\dfrac{25}{1944} P(四进带一秀)=666×5×5×4=46656600=194425。
五子带一秀
先不考虑顺序。
相同的不得为
4
4
4,有
5
5
5 种。
考虑顺序, 4 4 4 可放在 6 6 6 个位置,有 6 6 6 种。
因此 P ( 五子带一秀 ) = 6 × 5 6 6 = 30 46656 = 5 7776 P(五子带一秀)=\dfrac{6\times5}{6^6}=\dfrac{30}{46656}=\dfrac{5}{7776} P(五子带一秀)=666×5=4665630=77765。
一秀
P ( 一秀 ) = P ( 一个四 ) − P ( 四进带一秀 ) − P ( 五子带一秀 ) − P ( 对堂 ) = 6 × 5 5 6 6 − 25 1944 − 5 7776 − 5 324 = 17400 46656 = 725 1944 ≈ 37.29 % \begin{aligned} P(一秀)&=P(一个四)-P(四进带一秀)-P(五子带一秀)-P(对堂)\\ &=\dfrac{6\times5^5}{6^6}-\dfrac{25}{1944}-\dfrac{5}{7776}-\dfrac{5}{324}=\dfrac{17400}{46656}=\dfrac{725}{1944}\approx37.29\% \end{aligned} P(一秀)=P(一个四)−P(四进带一秀)−P(五子带一秀)−P(对堂)=666×55−194425−77765−3245=4665617400=1944725≈37.29%。
无
将前面所有的减去可得 P ( 无 ) = 14300 46656 = 3575 11664 ≈ 30.65 % P(无)=\dfrac{14300}{46656}=\dfrac{3575}{11664}\approx30.65\% P(无)=4665614300=116643575≈30.65%。
总结
结果 | 结果数 | 概率 |
---|---|---|
所有情况 | 46656 | 100% |
无 | 14300 | 30.65% |
一秀(不含四进带一秀、五子带一秀) | 17400 | 37.29% |
二举(不含四进带二举) | 9300 | 19.93% |
四进 | 1875 | 4.02% |
三红 | 2500 | 5.36% |
对堂 | 720 | 1.54% |
状元(包含所有普通以及特殊情况) | 561 | 1.20% |
状元(仅包含普通情况) | 360 | 0.772% |
五子 | 150 | 0.322% |
五红 | 30 | 0.064% |
六子 | 5 | 0.010% |
六红 | 1 | 0.002% |
状元插金花 | 15 | 0.032% |
有一种极为简单的方法:
#include <bits/stdc++.h>
using namespace std;
// 四进带一秀只算四进不算一秀
int cnt[7],cnt0,nothing,yixiu,erju,sijin,sanhong,duitang,normal_zhuangyuan,wuzi,wuhong,liuzi,liuhong,zhuangyuanchajinhua;
int main(){
for (int a=1;a<=6;a++) for (int b=1;b<=6;b++) for (int c=1;c<=6;c++) for (int d=1;d<=6;d++) for (int e=1;e<=6;e++) for (int f=1;f<=6;f++){
memset(cnt,0,sizeof cnt);
cnt[a]++,cnt[b]++,cnt[c]++,cnt[d]++,cnt[e]++,cnt[f]++;
if (cnt[1]==2&&cnt[4]==4) zhuangyuanchajinhua++;
else if (cnt[4]==6) liuhong++;
else if (cnt[1]==6||cnt[2]==6||cnt[3]==6||cnt[5]==6||cnt[6]==6) liuzi++;
else if (cnt[4]==5) wuhong++;
else if (cnt[1]==5||cnt[2]==5||cnt[3]==5||cnt[5]==5||cnt[6]==5) wuzi++;
else if (cnt[4]==4) normal_zhuangyuan++;
else if (cnt[1]==1&&cnt[2]==1&&cnt[3]==1&&cnt[4]==1&&cnt[5]==1&&cnt[6]==1) duitang++;
else if (cnt[4]==3) sanhong++;
else if (cnt[1]==4||cnt[2]==4||cnt[3]==4||cnt[5]==4||cnt[6]==4) sijin++;
else if (cnt[4]==2) erju++;
else if (cnt[4]==1) yixiu++;
else nothing++;
}
printf("%d %d %d %d %d %d %d %d %d %d %d %d\n",nothing,yixiu,erju,sijin,sanhong,duitang,normal_zhuangyuan,wuzi,wuhong,liuzi,liuhong,zhuangyuanchajinhua);
return 0;
}
思考题
假设给定每种结果一个分数 a i a_i ai,如何计算一个人博 n n n 次饼所期望能获得的分数(即获得分数的期望值)?(答案之后公布)