三国杀中的概率学问题4——曹冲

news2024/11/19 5:46:02

前言

这篇文章是围绕曹冲的称象技能展开的一些数学上的讨论,将涉及到积分、概率论等知识,并会做很多拓展。
值得说明的是,本文受到了这篇文章的一些启发。

连续情形1

先来看一个连续情形的问题。

问题一:假设每张牌的点数是0~1的随机数。我们重复翻开牌堆顶的牌,直到所有牌的点数和大于1为止。求翻开牌数的数学期望。

我们用概率论的方式来理解这个问题。每张牌的点数可以看成一个随机变量,第 i i i张牌的点数表示的随机变量为 ξ i \xi_i ξi。由题意得, ξ i \xi_i ξi服从标准均匀分布,即 ξ i \xi_i ξi~ U ( 0 , 1 ) U(0,1) U(0,1)。且这些随机变量相互独立。

E E E为翻开牌数的数学期望。我们来考虑如何求 E E E

要摸到第 i i i张牌,只需要前 i i i张牌的点数和小于等于1,即 ∑ i = 1 i ξ i ≤ 1 \sum_{i=1}^i{\xi_i}\leq1 i=1iξi1

那么我们有 P ( ∑ i = 1 n ξ i ≤ 1 ) P(\sum_{i=1}^n{\xi_i}\leq1) P(i=1nξi1)的概率摸到第 n n n张牌。

再加上最后一张使得点数和大于1的牌,我们得到

E = 1 + ∑ n = 1 ∞ P ( ∑ i = 1 n ξ i ≤ 1 ) E=1+\sum_{n=1}^\infty{P(\sum_{i=1}^n{\xi_i}\leq1)} E=1+n=1P(i=1nξi1)

那么我们现在需要计算 P ( ∑ i = 1 n ξ i ≤ 1 ) P(\sum_{i=1}^n{\xi_i}\leq1) P(i=1nξi1)

Y n = ∑ i = 1 n ξ i Y_n=\sum_{i=1}^n{\xi_i} Yn=i=1nξi,那么 Y n Y_n Yn其实就是 n n n个服从标准均匀分布的随机变量的和。有意思的是,刚好有一种分布就是这么定义的。它就是欧文-霍尔分布。

欧文-霍尔分布的分布函数为 F Y n ( x ) = 1 n ! ∑ k = 0 ⌊ x ⌋ ( − 1 ) k C n k ( x − k ) n F_{Y_n}(x)=\frac{1}{n!}\sum_{k=0}^{\lfloor x \rfloor}{(-1)^kC_n^k (x-k)^n} FYn(x)=n!1k=0x(1)kCnk(xk)n

看起来非常复杂,但是我们只需要 x = 1 x=1 x=1时的结果就行了。代入 x = 1 x=1 x=1,得

F Y n ( 1 ) = 1 n ! F_{Y_n}(1)=\frac{1}{n!} FYn(1)=n!1

那么 P ( ∑ i = 1 n ξ i ≤ 1 ) = F Y n ( 1 ) = 1 n ! P(\sum_{i=1}^n{\xi_i}\leq1)=F_{Y_n}(1)=\frac{1}{n!} P(i=1nξi1)=FYn(1)=n!1

于是 E = 1 + ∑ n = 1 ∞ P ( ∑ i = 1 n ξ i ≤ 1 ) = 1 + ∑ n = 1 ∞ 1 n ! = e ≈ 2.718 E=1+\sum_{n=1}^\infty{P(\sum_{i=1}^n{\xi_i}\leq1)}=1+\sum_{n=1}^\infty{\frac{1}{n!}}=e \approx2.718 E=1+n=1P(i=1nξi1)=1+n=1n!1=e2.718

连续情形2

问题2:假设每张牌的点数是0~1的随机数。我们同时亮出4张牌,然后尽可能地拿最多牌,同时保证拿到的牌的点数和小于等于1。求获得牌数的数学期望。

这个时候已经越来越接近原始的称象问题了。我们令 E E E表示获得牌数的数学期望。

我们令 P i P_i Pi表示四张牌中,任意 i i i张牌的点数和都大于1的概率。

那么 1 − P i 1-P_i 1Pi就表示四张牌中,存在 i i i张牌,其点数和小于1。也就是说,我们有 1 − P i 1-P_i 1Pi的概率摸到第 i i i张牌。

于是,得到 E = ∑ i = 1 4 1 − P i E=\sum_{i=1}^{4}{1-P_i} E=i=141Pi

那么问题就转化成了求 P i P_i Pi

显然, P 1 = 0 P_1=0 P1=0,因为任意一张牌的点数都小于等于1。

P 4 P_4 P4也很好求,利用上面的欧文霍尔分布的分布函数即可。

P 4 = P ( ∑ i = 1 4 ξ i > 1 ) = 1 − P ( ∑ i = 1 4 ξ i ≤ 1 ) = 1 − F Y 4 ( 1 ) = 1 − 1 4 ! = 23 24 P_4=P(\sum_{i=1}^4{\xi_i}>1)=1-P(\sum_{i=1}^4{\xi_i}\leq1)=1-F_{Y_4}(1)=1-\frac{1}{4!}=\frac{23}{24} P4=P(i=14ξi>1)=1P(i=14ξi1)=1FY4(1)=14!1=2423

P 2 P_2 P2 P 3 P_3 P3相对来说,比较难求。

P 2 P_2 P2可以转化成求被下列函数包围的体积:

{ 0 ≤ x 1 , x 2 , x 3 , x 4 ≤ 1 x 1 + x 2 > 1 x 1 + x 3 > 1 x 1 + x 4 > 1 x 2 + x 3 > 1 x 2 + x 4 > 1 x 3 + x 4 > 1 \begin{cases} 0\leq x_1,x_2,x_3,x_4\leq1 \\ x_1+x_2>1 \\ x_1+x_3>1 \\ x_1+x_4>1 \\ x_2+x_3>1 \\ x_2+x_4>1 \\ x_3+x_4>1 \\ \end{cases} 0x1,x2,x3,x41x1+x2>1x1+x3>1x1+x4>1x2+x3>1x2+x4>1x3+x4>1

二维和三维情况可以通过画图的方法来做,但是这是四维空间,于是我们用积分来计算。

P 2 = ∫ 0 1 ∫ 1 − x 1 1 ∫ 1 − m i n ( x 1 , x 2 ) 1 ∫ 1 − m i n ( x 1 , x 2 , x 3 ) 1 d x 1 d x 2 d x 3 d x 4 = ∫ 0 1 ∫ 1 − x 1 1 ∫ 1 − m i n ( x 1 , x 2 ) 1 m i n ( x 1 , x 2 , x 3 ) d x 1 d x 2 d x 3 P_2=\int_0^1\int_{1-x_1}^1\int_{1-min(x_1,x_2)}^1\int_{1-min(x_1,x_2,x_3)}^1dx_1dx_2dx_3dx_4=\int_0^1\int_{1-x_1}^1\int_{1-min(x_1,x_2)}^1{min(x_1,x_2,x_3)}dx_1dx_2dx_3 P2=011x111min(x1,x2)11min(x1,x2,x3)1dx1dx2dx3dx4=011x111min(x1,x2)1min(x1,x2,x3)dx1dx2dx3

通过编写如下的matlab代码,我们算出 P 2 = 1 8 P_2=\frac{1}{8} P2=81

integral3(@(x,y,z)min(min(x,y),z),0,1,@(x)1-x,1,@(x,y)1-min(x,y),1)

四张牌的情况下, P 2 = 1 8 P_2=\frac{1}{8} P2=81。事实上, n n n张牌的情况下,任意两张牌点数大于1的概率为 1 2 n − 1 \frac{1}{2^{n-1}} 2n11

计算 P 3 P_3 P3跟计算 P 2 P_2 P2类似,也是转化为求体积的问题,用积分进行求解。

P 3 = ∫ 0 1 ∫ 0 1 ∫ m a x ( 1 − x 1 − x 2 , 0 ) 1 ∫ m a x ( 1 − m i n ( x 1 + x 2 , x 1 + x 3 , x 2 + x 3 ) , 0 ) 1 d x 1 d x 2 d x 3 d x 4 = ∫ 0 1 ∫ 0 1 ∫ m a x ( 1 − x 1 − x 2 , 0 ) 1 1 − m a x ( 1 − m i n ( x 1 + x 2 , x 1 + x 3 , x 2 + x 3 ) , 0 ) d x 1 d x 2 d x 3 P_3=\int_0^1 \int_0^1 \int_{max(1-x_1-x_2,0)}^1\int_{max(1-min(x_1+x_2,x_1+x_3,x_2+x_3),0)}^1dx_1dx_2dx_3dx_4=\int_0^1 \int_0^1 \int_{max(1-x_1-x_2,0)}^1{1-max(1-min(x_1+x_2,x_1+x_3,x_2+x_3),0)}dx_1dx_2dx_3 P3=0101max(1x1x2,0)1max(1min(x1+x2,x1+x3,x2+x3),0)1dx1dx2dx3dx4=0101max(1x1x2,0)11max(1min(x1+x2,x1+x3,x2+x3),0)dx1dx2dx3

matlab代码如下:

integral3(@(x,y,z)1-max(1-min(min(x+y,x+z),y+z),0),0,1,0,1,@(x,y)1-x-y,1)

求得 P 3 = 23 36 P_3=\frac{23}{36} P3=3623

事实上,在 n n n张牌的情况下,任意3张牌点数和大于1的概率为 2 ∗ 4 n − 2 − 3 n − 2 6 n − 2 \frac{2*4^{n-2}-3^{n-2}}{6^{n-2}} 6n224n23n2

值得说明的是,matlab的代码只能求出积分的数值解,这里是为了方便起见,人为凭借经验转换成了分数的形式。

最终,我们求出 P 1 = 0 , P 2 = 1 8 , P 3 = 23 36 , P 4 = 23 24 P_1=0,P_2=\frac{1}{8},P_3=\frac{23}{36},P_4=\frac{23}{24} P1=0,P2=81,P3=3623,P4=2423

E = ∑ i = 1 4 1 − P i = 41 18 ≈ 2.278 E=\sum_{i=1}^{4}{1-P_i}=\frac{41}{18}\approx2.278 E=i=141Pi=18412.278

离散情形

曹冲
现在我们来看曹冲的技能称象。

问题3:每张牌的点数为1-13的整数,且随机出现。我们同时亮出4张牌,然后尽可能地拿最多牌,同时保证拿到的牌的点数和小于等于13。求获得牌数的数学期望。

题目中有两个13,将这两个13记为 m m m,令 m → ∞ m\to \infty m,就是连续情形2,数学期望就是 41 18 \frac{41}{18} 1841。现在我们来求解一下离散情形。

方法一

我们先用数学方法解一下这个问题。

我们令 E E E表示获得牌数的数学期望。

我们令 P i P_i Pi表示四张牌中,任意 i i i张牌的点数和都大于13的概率。

跟上面的公式相同, E = ∑ i = 1 4 1 − P i E=\sum_{i=1}^{4}{1-P_i} E=i=141Pi

由于每张牌的点数最大就是13,所以任意一张牌的点数大于13的概率为0,即 P 1 = 0 P_1=0 P1=0

P 2 P_2 P2的计算

P 2 P_2 P2的计算比较有难度。

我们假设4张牌中点数最小的牌的点数为 i i i

1 ≤ i ≤ 6 1\leq i\leq6 1i6,那么其它三张牌必须要大于 13 − i 13-i 13i,于是其它三张牌的取值范围为 ( 13 − i , 13 ] (13-i,13] (13i,13],每张牌有 i i i种取法,三张牌共有 i 3 i^3 i3种取法。由于最小的牌可以在4个位置的任意一个位置,所以答案要乘以4,即 ∑ i = 1 6 4 ∗ i 3 \sum_{i=1}^6 {4*i^3} i=164i3

7 ≤ i ≤ 13 7\leq i\leq13 7i13,那么其实这四张牌都大于等于7即可。于是方案数为 7 4 7^4 74

于是, P 2 = ∑ i = 1 6 4 ∗ i 3 + 7 3 1 3 4 = 4165 28561 ≈ 0.1458 P_2=\frac{\sum_{i=1}^6 {4*i^3}+7^3}{13^4}=\frac{4165}{28561}\approx0.1458 P2=134i=164i3+73=2856141650.1458

稍微拓展一下,把题目中的亮出4张牌,改为亮出 n n n张牌,把题目中的两个13改成 m m m,看看 P 2 P_2 P2又将如何计算。

我们假设 n n n张牌中最小的点数为 i i i

1 ≤ i ≤ ⌊ m 2 ⌋ 1\leq i \leq \lfloor\frac{m}{2}\rfloor 1i2m时,其它 n − 1 n-1 n1张牌的范围是 ( m − i , m ] (m-i,m] (mi,m],即每张牌有 i i i种取法,于是 n − 1 n-1 n1张牌有 i n − 1 i^{n-1} in1种取法。由于最小值所在的位置可以是 n n n个位置中的任意位置,故要再乘以 n n n,所以一共有 n ∑ i = 1 ⌊ m 2 ⌋ i n − 1 n\sum_{i=1}^{\lfloor\frac{m}{2}\rfloor}{i^{n-1}} ni=12min1种取法。

⌊ m 2 ⌋ < i ≤ m \lfloor\frac{m}{2}\rfloor<i\leq m 2m<im时,那么其实这 n n n张牌可以在 ( ⌊ m 2 ⌋ , m ] (\lfloor\frac{m}{2}\rfloor,m] (⌊2m,m]的范围内任意取,于是共有 ( m − ⌊ m 2 ⌋ ) n (m-\lfloor\frac{m}{2}\rfloor)^n (m2m)n种取法。

于是, P 2 = n m n ∑ i = 1 ⌊ m 2 ⌋ i n − 1 + ( m − ⌊ m 2 ⌋ ) n m n P_2=\frac{n}{m^n}\sum_{i=1}^{\lfloor\frac{m}{2}\rfloor}{i^{n-1}}+\frac{(m-\lfloor\frac{m}{2}\rfloor)^n}{m^n} P2=mnni=12min1+mn(m2m)n

让我们计算一下 P 2 P_2 P2 m → ∞ m\to\infty m时的极限。

补充一个知识, l i m m → ∞ ∑ i = 1 m i n m n + 1 = 1 n + 1 lim_{m\to\infty}\sum_{i=1}^m{\frac{i^n}{m^{n+1}}}=\frac{1}{n+1} limmi=1mmn+1in=n+11

于是得到, l i m m → ∞ P 2 = l i m m → ∞ n m n ∑ i = 1 m 2 i n − 1 + ( m − m 2 ) n m n = 1 2 n + 1 2 n = 1 2 n − 1 lim_{m\to\infty}P_2=lim_{m\to\infty}\frac{n}{m^n}\sum_{i=1}^{\frac{m}{2}}{i^{n-1}}+\frac{(m-\frac{m}{2})^n}{m^n}=\frac{1}{2^n}+\frac{1}{2^n}=\frac{1}{2^{n-1}} limmP2=limmmnni=12min1+mn(m2m)n=2n1+2n1=2n11

这个结论跟之前连续情形2的结论是一致的。

P 3 P_3 P3的计算

比起 P 2 P_2 P2的计算, P 3 P_3 P3的计算更加复杂。要是不感兴趣,可以直接跳过这一节。

整体思路是对于4张牌中点数小于等于4的牌数进行枚举。

①若没有牌点数小于等于4,则每张牌的范围都是 [ 5 , 13 ] [5,13] [5,13],任意三张牌的和都大于等于15,显然满足条件。此时的方案数为 9 4 = 6561 9^4=6561 94=6561

②若只有一张牌点数小于等于4,则设它的点数为 i i i。现在问题变成了,剩下三张牌中,任意两张牌的点数和大于 13 − i 13-i 13i的方案数有多少种。那么这可以套用 P 2 P_2 P2的计算思想。设次小值的点数为 j j j

5 ≤ j ≤ ⌊ 13 − i 2 ⌋ 5\leq j\leq \lfloor\frac{13-i}{2}\rfloor 5j213i,剩下两张牌的取值范围即为 ( 13 − i − j , 13 ] (13-i-j,13] (13ij,13],即 ( i + j ) 2 (i+j)^2 (i+j)2种取法。再考虑上最小值和次小值的位置,即为 A 4 2 ( i + j ) 2 A_4^2(i+j)^2 A42(i+j)2

⌊ 13 − i 2 ⌋ < j ≤ 13 \lfloor\frac{13-i}{2}\rfloor<j\leq13 213i<j13,则这三张牌可以在 ( ⌊ 13 − i 2 ⌋ , 13 ] (\lfloor\frac{13-i}{2}\rfloor,13] (⌊213i,13]内任取,共有 ( 13 − ⌊ 13 − i 2 ⌋ ) 3 (13-\lfloor\frac{13-i}{2}\rfloor)^3 (13213i)3种方案。考虑到最小值的位置有4种取法,即为 4 ∗ ( 13 − ⌊ 13 − i 2 ⌋ ) 3 4*(13-\lfloor\frac{13-i}{2}\rfloor)^3 4(13213i)3种方案。

于是这种情况的总方案数为 A 4 2 ∑ i = 1 4 ∑ j = 5 ⌊ 13 − i 2 ⌋ ( i + j ) 2 + 4 ∑ i = 1 4 ( 13 − ⌊ 13 − i 2 ⌋ ) 3 = 12 ∗ ( 6 2 + 7 2 + 7 2 + 8 2 ) + 4 ∗ ( 7 3 + 8 3 + 8 3 + 9 3 ) = 10760 A_4^2\sum_{i=1}^4\sum_{j=5}^{\lfloor\frac{13-i}{2}\rfloor}(i+j)^2+4\sum_{i=1}^4{(13-\lfloor\frac{13-i}{2}\rfloor)^3}=12*(6^2+7^2+7^2+8^2)+4*(7^3+8^3+8^3+9^3)=10760 A42i=14j=5213i(i+j)2+4i=14(13213i)3=12(62+72+72+82)+4(73+83+83+93)=10760

③若有2张牌点数都小于等于4,则假设这两张牌点数和为 i i i。那么剩下两张牌的点数的范围就是 ( 13 − i , 13 ] (13-i,13] (13i,13],方案数即为 i 2 i^2 i2

再考虑两张牌点数和为 i i i,且两张牌的点数都小于等于4的情况数。由于情况比较少,可以直接枚举。

2=1+1
3=1+2=2+1
4=1+3=2+2=3+1
5=1+4=2+3=3+2=4+1
6=2+4=3+3=4+2
7=3+4=4+3
8=4+4

情况数为 4 − ∣ 5 − i ∣ 4-|5-i| 4∣5i

这两张牌需要找两个位置,有 C 4 2 C_4^2 C42种方法。

于是,总方案数为 C 4 2 ∑ i = 2 8 ( 4 − ∣ 5 − i ∣ ) i 2 = 6 ∗ ( 1 ∗ 2 2 + 2 ∗ 3 2 + 3 ∗ 4 2 + 4 ∗ 5 2 + 3 ∗ 6 2 + 2 ∗ 7 2 + 1 ∗ 8 2 ) = 2640 C_4^2\sum_{i=2}^8{(4-|5-i|)i^2}=6*(1*2^2+2*3^2+3*4^2+4*5^2+3*6^2+2*7^2+1*8^2)=2640 C42i=28(4∣5i)i2=6(122+232+342+452+362+272+182)=2640

④若点数小于等于4的牌数大于等于3,则显然不符合题意。

综上,总方案数为 9 4 + A 4 2 ∑ i = 1 4 ∑ j = 5 ⌊ 13 − i 2 ⌋ ( i + j ) 2 + 4 ∑ i = 1 4 ( 13 − ⌊ 13 − i 2 ⌋ ) 3 + C 4 2 ∑ i = 2 8 ( 4 − ∣ 5 − i ∣ ) i 2 = 19961 9^4+A_4^2\sum_{i=1}^4\sum_{j=5}^{\lfloor\frac{13-i}{2}\rfloor}(i+j)^2+4\sum_{i=1}^4{(13-\lfloor\frac{13-i}{2}\rfloor)^3}+C_4^2\sum_{i=2}^8{(4-|5-i|)i^2}=19961 94+A42i=14j=5213i(i+j)2+4i=14(13213i)3+C42i=28(4∣5i)i2=19961

于是, P 3 = 19961 1 3 4 ≈ 0.6989 P_3=\frac{19961}{13^4}\approx0.6989 P3=134199610.6989

顺带提一句,若每张牌的点数范围是 1 − m 1-m 1m n n n张牌中任意3张牌点数和大于 m m m的概率为 P 3 = 1 m n [ ( m − ⌊ m 3 ⌋ ) n + A n 2 ∑ i = 1 ⌊ m 3 ⌋ ∑ j = ⌊ m 3 ⌋ + 1 ⌊ m − i 2 ⌋ ( i + j ) n − 2 + n ∑ i = 1 ⌊ m 3 ⌋ ( m − ⌊ m − i 2 ⌋ ) n − 1 + C n 2 ∑ i = 2 2 ⌊ m 3 ⌋ i n − 2 ( ⌊ m 3 ⌋ − ∣ i − ⌊ m 3 ⌋ − 1 ∣ ) ] P_3=\frac{1}{m^n}[(m-\lfloor\frac{m}{3}\rfloor)^n+A_n^2\sum_{i=1}^{\lfloor\frac{m}{3}\rfloor}\sum_{j=\lfloor\frac{m}{3}\rfloor+1}^{\lfloor\frac{m-i}{2}\rfloor}{(i+j)^{n-2}}+n\sum_{i=1}^{\lfloor\frac{m}{3}\rfloor}(m-\lfloor\frac{m-i}{2}\rfloor)^{n-1}+C_n^2\sum_{i=2}^{2\lfloor\frac{m}{3}\rfloor}i^{n-2}(\lfloor\frac{m}{3}\rfloor-|i-\lfloor\frac{m}{3}\rfloor-1|)] P3=mn1[(m3m)n+An2i=13mj=3m+12mi(i+j)n2+ni=13m(m2mi)n1+Cn2i=223min2(⌊3mi3m1∣)]

l i m m → ∞ P 3 = 2 ∗ 4 n − 2 − 3 n − 2 6 n − 2 lim_{m\to\infty}P_3=\frac{2*4^{n-2}-3^{n-2}}{6^{n-2}} limmP3=6n224n23n2

由于过于复杂,这里只给出结论,不作证明。

P 4 P_4 P4的计算

P 4 P_4 P4表示四张牌点数和大于13的概率。正难则反,我们计算四张牌点数和小于等于13的概率。我们假设四张牌的点数分别为 i , j , k , l i,j,k,l i,j,k,l我们可以列出式子

1 − P 4 = 1 1 3 4 ∑ i = 1 10 ∑ j = 1 11 − i ∑ k = 1 12 − i − j ∑ l = 1 13 − i − j − k 1 = ∑ i = 1 10 ∑ j = 1 11 − i ∑ k = 1 12 − i − j ( 13 − i − j − k ) 1-P_4=\frac{1}{13^4}\sum_{i=1}^{10}\sum_{j=1}^{11-i}\sum_{k=1}^{12-i-j}\sum_{l=1}^{13-i-j-k}{1}=\sum_{i=1}^{10}\sum_{j=1}^{11-i}\sum_{k=1}^{12-i-j}(13-i-j-k) 1P4=1341i=110j=111ik=112ijl=113ijk1=i=110j=111ik=112ij(13ijk)

利用公式
{ ∑ i = 1 n i = n ( n + 1 ) 2 ∑ i = 1 n i 2 = n ( n + 1 ) ( 2 n + 1 ) 6 ∑ i = 1 n i 3 = [ n ( n + 1 ) 2 ] 2 \begin{cases} \sum_{i=1}^n{i}=\frac{n(n+1)}{2} \\ \sum_{i=1}^n{i^2}=\frac{n(n+1)(2n+1)}{6} \\ \sum_{i=1}^n{i^3}=[\frac{n(n+1)}{2}]^2 \end{cases} i=1ni=2n(n+1)i=1ni2=6n(n+1)(2n+1)i=1ni3=[2n(n+1)]2

可以求出 1 − P 4 = 715 28561 1-P_4=\frac{715}{28561} 1P4=28561715

于是得到 P 4 = 27846 28561 ≈ 0.9750 P_4=\frac{27846}{28561}\approx0.9750 P4=28561278460.9750

综上, E = ∑ i = 1 4 1 − P i = 4 − ∑ i = 1 4 P i = 4 − 0 − 4165 1 3 4 − 19961 1 3 4 − 27846 1 3 4 = 62272 28561 ≈ 2.1803 E=\sum_{i=1}^{4}{1-P_i}=4-\sum_{i=1}^4P_i=4-0-\frac{4165}{13^4}-\frac{19961}{13^4}-\frac{27846}{13^4}=\frac{62272}{28561}\approx2.1803 E=i=141Pi=4i=14Pi=4013441651341996113427846=28561622722.1803

最终,我们通过一系列复杂的计算,终于通过数学方法计算出了曹冲称象的数学期望,为2.1803张牌。

方法二

通过数学方法的证明及其繁琐,但是用编程求解却非常简单。这里给出编程求解的代码。

p=zeros(1,4);
for i=1:13
    for j=1:13
        for k=1:13
            for l=1:13
                if i+j>13 && i+k>13 && i+l>13 && j+k>13 && j+l>13 && k+l>13
                    p(2)=p(2)+1;
                end
                if i+j+k>13 && i+j+l>13 && i+k+l>13 && j+k+l>13
                    p(3)=p(3)+1;
                end
                if i+j+k+l>13
                    p(4)=p(4)+1;
                end
            end
        end
    end
end
p=p./13^4
E=4-sum(p)


根据 E = ∑ i = 1 4 1 − P i E=\sum_{i=1}^{4}{1-P_i} E=i=141Pi,通过枚举的方式,很容易计算出 P i P_i Pi。通过一个非常简单的代码,一个困难的问题就迎刃而解。但是,这个代码的复杂度是 O ( m n ) O(m^n) O(mn)的,当 m m m或者 n n n稍微大一点,这个代码的复杂度就会很大。

总结

本文从曹冲的技能出发,提出并解决了2个连续情形的问题,且第二个连续情形是称象技能的一个极限情况。而且我们发现,其实极限情况的数学期望2.278,而离散情况的数学期望是2.1803,相差并不大。

在解决离散情形时,我们通过一个简单的公式 E = ∑ i = 1 4 1 − P i E=\sum_{i=1}^{4}{1-P_i} E=i=141Pi,使得代码非常简洁。如果直接做的话,代码写起来还是挺复杂的。

在面对一些问题时,一些人总是不满足于计算机的解法,试图通过数学的方法给出一些公式。我也是其中之一。所以我用数学的方式给出了一种解法,虽然这种解法称不上简洁,但是也在一定程度上给出了更大范围内的通用公式。虽然解决实际问题绰绰有余,但总是有人享受解决这些数学问题的乐趣。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1204585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM:卡表元素如何维护?(写屏障)

写屏障 上面使用记忆集解决了缩减GC Roots扫描范围的问题&#xff0c;现在又抛出来一个新的问题&#xff0c;卡表元素如何维护的呢&#xff1f;&#xff0c;例如它们何时变脏、谁来把它们变脏等。 何时变脏这个问题应该很明确的&#xff0c;原则上应该发生在引用类型字段赋值…

编译原理-语法分析-自上而下分析

文章目录 语法分析器的功能自上而下分析面临的问题LL&#xff08;1&#xff09;分析法左递归的消除直接左递归非直接左递归 消除左递归的算法消除回溯、提左因子FIRST提左因子FOLLOW集 LL(1)的分析条件LL(1)文法构造FIRST和FOLLOW集合构造每个文法符号的FIRST集合构造FOLLOW集合…

java网络编程之UDP协议

文章目录 UDP简介一发一收客户端&#xff1a;服务端&#xff1a; 多发多收实现多开客户端&#xff1a;服务端 UDP简介 UDP&#xff08;User Datagram Protocol&#xff09; DatagramSocket 用于创建客户端、服务端DatagramSocket() :创建客户端的Socket对象&#xff0c;系统随…

C++ 11 新特性

目录 1. 支持特性的编译器版本2. 模板表达式中空格3. 空指针4. auto5. 统一初始化6. explict7. 范围for8. default&#xff0c;delete9. 化名模板&#xff08;alias template&#xff09;10. using11. noexcept12. override13. final14. decltype15. lambda16. Variadic Templa…

4.2每日一题(求多元函数在某一点的微分)

1、分别求x和y的偏导&#xff0c;再相加即可 2、因为多元函数的表达式不方便求偏导&#xff0c;所以可以使用先代后求法&#xff1a; &#xff08;1&#xff09;对x偏导&#xff1a;把y0代入&#xff0c;很容易求出对x偏导的结果 &#xff08;2&#xff09;对y偏导&#xff1a…

Django——路由层

一. 路由匹配 1. 路由匹配注意事项 urlpatterns [url(r^admin/, admin.site.urls),# 首页url(r^$,views.home),# 路由匹配url(r^test/$,views.test),url(r^testadd/$,views.testadd),# 尾页(了解): 后期使用异常捕获处理, 这样的尾页让django的第二次在路径中斜杠APPEND_SL…

Redis解决缓存问题

目录 一、引言二、缓存三、Redis缓存四、缓存一致性1.缓存更新策略2.主动更新 五、缓存穿透六、缓存雪崩七、缓存击穿1.基于互斥锁解决具体业务2.基于逻辑过期解决具体业务 一、引言 在一些大型的网站中会有十分庞大的用户访问流量&#xff0c;而过多的用户访问对我们的MySQL数…

Linux SSH免密登录

目录 简介 创建Linux用户和用户组 配置LINUX静态IP 编辑IP映射 SSH免密登录配置 登录测试 简介 SSH&#xff08;Secure shell&#xff09;是可以在应用程序中提供安全通信的一个协议&#xff0c;通过SSH可以安全地进行网络数据传输&#xff0c;它的主要原理是利用非对称加密…

Libhybris之线程局部存储TLS实例(五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

二十三、W5100S/W5500+RP2040树莓派Pico<Web I/O 通过网页控制板载LED灯>

文章目录 1 前言2 简介2 .1 什么是Web&#xff1f;2.2 Web的优点2.3 Web数据交互原理2.4 Web应用场景 3 WIZnet以太网芯片4 HTTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 Web只是一个静态的文…

电源基础元件

文章目录 电源基础元件理想电压源理想电流源受控电源 电源基础元件 理想电压源 定义 其两端电压总能保持定值或一定的时间函数&#xff0c;其值与流过它的电流i无关的元件叫理想电压源 理想电压源的电压、电流关系 1.电源两端电压由电源本身决定&#xff0c;与外电路无关&…

桶装水订水送水app有哪些功能?

桶装水订水送水app是一款专为送水工量身打造的提供送水服务的软件&#xff0c;在这里&#xff0c;送水人员将更好的在线发布一些送水信息&#xff0c;在线接单等功能&#xff0c;极大的提高了工作效率&#xff0c;方便了日常生活。 系统的商户端&#xff0c;专为送水工日常送水…

【计算机网络】VRRP协议理论和配置

目录 1、VRRP虚拟路由器冗余协议 1.1、协议作用 1.2、名词解释 1.3、简介 1.4、工作原理 1.5、应用实例 2、 VRRP配置 2.1、配置命令 2.2、拓扑与配置&#xff1a; 1、VRRP虚拟路由器冗余协议 1.1、协议作用 虚拟路由冗余协议(Virtual Router Redundancy Protocol&am…

2023nacos源码解读第2集——nacos-server的启动

nacos 是一个典型的server-client中间件&#xff0c;server这里安装最新的nacos-server 2.3.0-BETA版本 1.docker启动nacos-server 镜像详情参考nacos-docker项目的readme &#xff0c;很方便&#xff0c;但是官方提供的nacos-server镜像往往可能滞后&#xff0c;且不便于后续…

【Java 进阶篇】JQuery DOM操作:舞动网页的属性魔法

在前端的舞台上&#xff0c;属性操作是我们与HTML元素进行互动的关键步骤之一。而JQuery&#xff0c;这位前端开发的巫师&#xff0c;通过简洁而强大的语法&#xff0c;为我们提供了便捷的属性操作工具。在这篇博客中&#xff0c;我们将深入研究JQuery DOM操作中的属性操作&…

C语言--1,5,10人民币若干,现在需要18元,一共有多少种?

今天小编给大家分享一下穷举法的一道典型例题 一.题目描述 1,5,10人民币若干,现在需要18元,一共有多少种? 二.思路分析 总共有18块钱&#xff0c;设1元有x张&#xff0c;5元有y张&#xff0c;10元有z张&#xff0c;则有表达式&#xff1a;x5y10z18&#xff0c;穷举法最重要的…

Unity中雾效的实现方法二

文章目录 前言一、声明雾效所需要的内置变体二、在 v2f 中声明顶点传入片段中的雾效插值器三、 在顶点着色器中计算雾效采样四、在片元着色器中进行雾效颜色混合在这里插入图片描述 五、最终效果 前言 Unity中雾效的实现方法二&#xff0c;使用 Unity 自带的方法实现&#xff…

Spring IOC - BeanDefinition解析

1. BeanDefinition的属性 BeanDefinition作为接口定义了属性的get、set方法。这些属性基本定义在其直接实现类AbstractBeanDefinition中&#xff0c;各属性的含义如下表所示&#xff1a; 类型 名称 含义 常量 SCOPE_DEFAULT 默认作用域&#xff1a;单例模式 AUT…