博饼概率计算

博饼规则

在这里插入图片描述

此文章将遍地锦、六杯黑合称“六子”,六杯红简称“六红”,五子登科简称“五子”。

且符合多个条件的结果按照更高条件计算(如四进带一秀算作四进不算一秀)。

预备知识

排列

我们设 AnmA_n^mAnm 表示从 nnn 个数中选出 mmm 个数的方案数(不同顺序记作不同方案)。

则第 111 次有 nnn 种选择,第 222 次有 n−1n-1n1 种选择,……,第 mmm 次有 n−m+1n-m+1nm+1 种选择。

因此 Anm=n!(n−m)!A_n^m=\dfrac{n!}{(n-m)!}Anm=(nm)!n!

组合

若设 CnmC_n^mCnm 表示从 nnn 个数中选出 mmm 个数的方案数(不同顺序记作同一方案)。

对于同一方案,一共有 Amm=m!A_m^m=m!Amm=m! 种顺序。

因此 Cnm=AnmAmm=n!(n−m)!m!C_n^m=\dfrac{A_n^m}{A_m^m}=\dfrac{n!}{(n-m)!m!}Cnm=AmmAnm=(nm)!m!n!

计算过程

状元插金花

222111 排在不同位置共有 C62=15C_6^2=15C62=15 种方案。

因此 P(状元插金花)=1566=1546656=515552≈0.032%P(状元插金花)=\dfrac{15}{6^6}=\dfrac{15}{46656}=\dfrac{5}{15552}\approx0.032\%P(状元插金花)=6615=4665615=1555250.032%

六红

只有 111 种方案。

因此 P(六红)=166=146656≈0.002%P(六红)=\dfrac{1}{6^6}=\dfrac{1}{46656}\approx0.002\%P(六红)=661=4665610.002%

六子

555 种方案,即都为 1,2,3,5,61,2,3,5,61,2,3,5,6

因此 P(六子)=566=1546656≈0.010%P(六子)=\dfrac{5}{6^6}=\dfrac{15}{46656}\approx0.010\%P(六子)=665=46656150.010%

五红

不为 444 的那一位有 555 种填法,同时有 666 种顺序。

因此 P(五红)=5×666=3046656=57776≈0.064%P(五红)=\dfrac{5\times6}{6^6}=\dfrac{30}{46656}=\dfrac{5}{7776}\approx0.064\%P(五红)=665×6=4665630=777650.064%

五子

相同的有 555 种填法,不同的那一位也有 555 种填法。

共有 666 种顺序。

因此 P(五子)=5×5×666=15046656=257776≈0.322%P(五子)=\dfrac{5\times5\times6}{6^6}=\dfrac{150}{46656}=\dfrac{25}{7776}\approx0.322\%P(五子)=665×5×6=46656150=7776250.322%

普通状元(四红)

525^252 种填法,C62=15C_6^2=15C62=15 种顺序。

但同时要减去状元插金花的情况。

因此 P(普通状元)=52×666−515552=36046656=5648≈0.772%P(普通状元)=\dfrac{5^2\times6}{6^6}-\dfrac{5}{15552}=\dfrac{360}{46656}=\dfrac{5}{648}\approx0.772\%P(普通状元)=6652×6155525=46656360=64850.772%

对堂

依次考虑每个数。

111666 个空位可选,222555 个空位可选,333444 个空位可选,444333 个空位可选,555222 个空位可选,666111 个空位可选,共 6!=706!=706!=70 种(或 A66A_6^6A66 种)。

因此 P(对堂)=72066=72046656=5324≈1.54%P(对堂)=\dfrac{720}{6^6}=\dfrac{720}{46656}=\dfrac{5}{324}\approx1.54\%P(对堂)=66720=46656720=32451.54%

三红

剩余的 333 个数有 535^353 种填法,且有 C63=20C_6^3=20C63=20 种顺序。

因此 P(三红)=53×2066=250046656=62511664≈5.36%P(三红)=\dfrac{5^3\times20}{6^6}=\dfrac{2500}{46656}=\dfrac{625}{11664}\approx5.36\%P(三红)=6653×20=466562500=116646255.36%

四进

相同的 444 个数有 555 种填法,剩余的 222 个数有 525^252 种填法,且有 C62=15C_6^2=15C62=15 种顺序。

因此 P(四进)=5×52×1566=187546656=62515552≈4.02%P(四进)=\dfrac{5\times5^2\times15}{6^6}=\dfrac{1875}{46656}=\dfrac{625}{15552}\approx4.02\%P(四进)=665×52×15=466561875=155526254.02%

四进带二举

相同的 444 个数有 555 种填法,且有 C62=15C_6^2=15C62=15 种顺序。

因此 P(四进带二举)=5×1566=7546656=2515552P(四进带二举)=\dfrac{5\times15}{6^6}=\dfrac{75}{46656}=\dfrac{25}{15552}P(四进带二举)=665×15=4665675=1555225

二举

剩余的 444 个数有 545^454 种填法,且有 C62=15C_6^2=15C62=15 种顺序。

同时要减去四进带二举的情况。

因此 P(二举)=54×1566−2515552=930046656=7753888≈19.93%P(二举)=\dfrac{5^4\times15}{6^6}-\dfrac{25}{15552}=\dfrac{9300}{46656}=\dfrac{775}{3888}\approx19.93\%P(二举)=6654×151555225=466569300=388877519.93%

四进带一秀

先不考虑顺序。在这里插入图片描述
第一个格子只能填 444,有 111 种情况;

第二至五个格子需要相同,可以填除 444 以外的任意数,有 555 种情况;

第六个格子既不能填 444,也不能与第二至五个格子重复,有 444 种情况。

若考虑顺序,444 可以填在 666 种位置,最后一个格子上的数可以填在剩余的 555 种位置。

因此 P(四进带一秀)=6×5×5×466=60046656=251944P(四进带一秀)=\dfrac{6\times5\times5\times4}{6^6}=\dfrac{600}{46656}=\dfrac{25}{1944}P(四进带一秀)=666×5×5×4=46656600=194425

五子带一秀

先不考虑顺序。
在这里插入图片描述
相同的不得为 444,有 555 种。

考虑顺序,444 可放在 666 个位置,有 666 种。

因此 P(五子带一秀)=6×566=3046656=57776P(五子带一秀)=\dfrac{6\times5}{6^6}=\dfrac{30}{46656}=\dfrac{5}{7776}P(五子带一秀)=666×5=4665630=77765

一秀

P(一秀)=P(一个四)−P(四进带一秀)−P(五子带一秀)−P(对堂)=6×5566−251944−57776−5324=1740046656=7251944≈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×55194425777653245=4665617400=194472537.29%

将前面所有的减去可得 P(无)=1430046656=357511664≈30.65%P(无)=\dfrac{14300}{46656}=\dfrac{3575}{11664}\approx30.65\%P()=4665614300=11664357530.65%

总结

结果结果数概率
所有情况46656100%
1430030.65%
一秀(不含四进带一秀、五子带一秀)1740037.29%
二举(不含四进带二举)930019.93%
四进18754.02%
三红25005.36%
对堂7201.54%
状元(包含所有普通以及特殊情况)5611.20%
状元(仅包含普通情况)3600.772%
五子1500.322%
五红300.064%
六子50.010%
六红10.002%
状元插金花150.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;
}

思考题

假设给定每种结果一个分数 aia_iai,如何计算一个人博 nnn 次饼所期望能获得的分数(即获得分数的期望值)?(答案之后公布)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值