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

前言

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

连续情形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,使得代码非常简洁。如果直接做的话,代码写起来还是挺复杂的。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣刷题-二叉树-对称二叉树

101 对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 思路 我的思路…

Unity--互动组件(Button)

1.组件的可交互 2.组件的过渡状态 3.组件的导航 4.组件的Event Button “”组件的可交互&#xff1a;“” Interactable&#xff1a; 该组件是否可点击&#xff08;设置为false时&#xff0c;将禁用交互&#xff0c;并且过渡状态将设置为禁用状态&#xff09;&#xff1b;…

深入理解C++关联式容器:set、multiset、map和multimap详解

序列式容器 与 关联式容器 我们知道&#xff1a; C 中&#xff0c;我们将 vector、list、queue 这种底层为线性序列的数据结构叫做 序列式容器&#xff0c;其存储的就是元素本身。而 关联式容器 以键-值对的形式存储数据。每个键在容器中必须是唯一的&#xff0c;而值则与相应…

Windows没有USB启动选项很常见,但解决方法更常见

当试图在计算机上重新安装Windows 11/10操作系统,或从安装介质启动时,一些用户看到错误–系统没有任何USB启动选项,请在启动管理器菜单中选择其他启动选项。此错误出现在不同OEM的多个设备,原因包括启用了安全引导、禁用了Legacy/CSM支持、联想服务引擎、未正确制作可引导U…

本地化小程序运营 同城小程序开发

时空的限制让本地化的线上平台成为一种追求&#xff0c;58及某团正式深挖人们城镇化、本地化的信息和商业需求而崛起的平台&#xff0c;将二者结合成本地化小程序&#xff0c;显然有着巨大的市场机会。本地化小程序运营可以结合本地化生活需求的一些信息&#xff0c;以及激发商…

linux下使用Docker Compose部署Spug实现公网远程访问

&#x1f4d1;前言 本文主要是linux下使用Docker Compose部署Spug实现公网远程访问的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &am…

vcomp120.dll丢失怎么办?vcomp120.dll丢失的解决方法分享

vcomp120.dll丢失”。这个错误通常会导致某些应用程序无法正常运行&#xff0c;给用户带来困扰。那么&#xff0c;当我们遇到这个问题时&#xff0c;应该如何修复呢&#xff1f;下面我将为大家介绍四个修复vcomp120.dll丢失的方法。 一、使用dll修复程序修复 可以通过百度或许…

【PWN · heap | unlink | free_hook】[SUCTF 2018 招新赛]unlink

在前期学习了unlink后&#xff0c;今天翻NSSCTF找到一道名为unlink的题目&#xff0c;尝试不看wp做。过程很顺利&#xff01; 前言 题目对于知识点unlink还是非常裸的&#xff0c;很直接&#xff0c;思路很清晰。 一、题目 二、思路浅析 通过对该程序的反编译&#xff0c;我们…

前端案例-css实现ul中对li进行换行

场景描述&#xff1a; 我想要实现&#xff0c;在展示的item个数少于4个的时候&#xff0c;则排成一行&#xff0c;并且均分&#xff08;比如说有3个&#xff0c;则每个的宽度为33.3%&#xff09;&#xff0c;如果item 个数大于4&#xff0c;则进行换行。 效果如下&#xff1a…

4.0 Linux进程前导知识

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 冯.诺依曼体系 CPU&#xff1a;运算器&#xff0c;控制器 输入设备&#xff1a;键盘&#xff0c;麦克风&#xff0c;摄像头&#xff0c;鼠标&#xff0c;网卡&#xff0c;磁盘等。 输出设备&#xff1a;显示器&#xff0…

KMP算法理论

KMP算法理论 前缀&#xff1a;包含首字母不包含尾字母的都称为前缀 例如 前缀 后缀&#xff1a;只包含尾字母不包含首字母的的称为后缀 后缀 寻找最长相等的前缀和后缀 前缀表 所谓next数组就是前缀表&#xff0c;在遇到冲突时next数组会告诉我们要回退到哪里 next数组的不同…

Java基础-基础语法

1、概述 一个 Java 程序可以认为是一系列对象的集合&#xff0c;而这些对象通过调用彼此的方法来协同工作。 对象&#xff1a;对象是类的一个实例&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个对象&#xff0c;它的状态有&#xff1a;颜色、名字、品种&#xff1b;…

No189.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

十三、W5100S/W5500+RP2040树莓派Pico<FTP Server>

文章目录 1. 前言2. 相关简介2.1 简述2.2 原理2.3 优点2.4 应用 3. WIZnet以太网芯片4. FTP Server运行测试4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 测试现象 5. 注意事项6. 相关链接 1. 前言 在当今的信息化时代&#xff0c;互联网已经成为人们生活、工作不可…

轻量级 SSO 方略:基于 OIDC 规范(二)

上一篇文章介绍了 SSO 相关的基础数据&#xff0c;这样有了 ClientId 和密钥后&#xff0c;我们就要准备客户端这边的代码。客户端当前指的便是一个网站&#xff08;也就是 RP&#xff09;&#xff0c;这个网站要求有会员功能&#xff0c;典型地网站导航上通常会有“注册”或“…

深度学习之基于YoloV5电梯电动车预警系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习在电梯电动车预警系统中的应用是一个复杂的系统工程&#xff0c;涉及计算机视觉、机器学习、深度学习等领域…

CLIP:万物分类(视觉语言大模型)

本文来着公众号“AI大道理” ​ 论文地址&#xff1a;https://arxiv.org/abs/2103.00020 传统的分类模型需要先验的定义固定的类别&#xff0c;然后经过CNN提取特征&#xff0c;经过softmax进行分类。然而这种模式有个致命的缺点&#xff0c;那就是想加入新的一类就得重新定义…

14:00面试,14:08就出来了,问的问题有点变态

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%,…

【C++】函数指针 ④ ( 函数指针做函数参数 | 使用函数指针间接调用函数 | 函数指针做参数 | 函数指针类型的本质 | 函数指针做参数意义 )

文章目录 一、函数指针做函数参数1、使用函数指针间接调用函数2、函数指针做参数3、函数指针类型的本质4、函数指针做参数意义 二、代码示例 - 函数指针做函数参数 一、函数指针做函数参数 1、使用函数指针间接调用函数 在上一篇博客 【C】函数指针 ③ ( 函数指针语法 | 函数名…

说说React Jsx转换成真实DOM过程?

一、是什么 react通过将组件编写的JSX映射到屏幕,以及组件中的状态发生了变化之后 React会将这些「变化」更新到屏幕上 在前面文章了解中,JSX通过babel最终转化成React.createElement这种形式,例如: <div> < img src="avatar.png" className="…