博饼概率计算

博饼规则

在这里插入图片描述

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

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

预备知识

排列

我们设 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 n1 种选择,……,第 m m m 次有 n − m + 1 n-m+1 nm+1 种选择。

因此 A n m = n ! ( n − m ) ! A_n^m=\dfrac{n!}{(n-m)!} Anm=(nm)!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=(nm)!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=1555250.032%

六红

只有 1 1 1 种方案。

因此 P ( 六红 ) = 1 6 6 = 1 46656 ≈ 0.002 % P(六红)=\dfrac{1}{6^6}=\dfrac{1}{46656}\approx0.002\% P(六红)=661=4665610.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=46656150.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=777650.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=7776250.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×6155525=46656360=64850.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=32451.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=116646255.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=155526254.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×151555225=466569300=388877519.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×55194425777653245=4665617400=194472537.29%

将前面所有的减去可得 P ( 无 ) = 14300 46656 = 3575 11664 ≈ 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;
}

思考题

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

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值