前言
这篇文章是围绕曹冲的称象技能展开的一些数学上的讨论,将涉及到积分、概率论等知识,并会做很多拓展。
值得说明的是,本文受到了这篇文章的一些启发。
连续情形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ξi≤1
那么我们有 P ( ∑ i = 1 n ξ i ≤ 1 ) P(\sum_{i=1}^n{\xi_i}\leq1) P(∑i=1nξi≤1)的概率摸到第 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=1∞P(∑i=1nξi≤1)
那么我们现在需要计算 P ( ∑ i = 1 n ξ i ≤ 1 ) P(\sum_{i=1}^n{\xi_i}\leq1) P(∑i=1nξi≤1)
令 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!1∑k=0⌊x⌋(−1)kCnk(x−k)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ξi≤1)=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=1∞P(∑i=1nξi≤1)=1+∑n=1∞n!1=e≈2.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 1−Pi就表示四张牌中,存在 i i i张牌,其点数和小于1。也就是说,我们有 1 − P i 1-P_i 1−Pi的概率摸到第 i i i张牌。
于是,得到 E = ∑ i = 1 4 1 − P i E=\sum_{i=1}^{4}{1-P_i} E=∑i=141−Pi
那么问题就转化成了求 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)=1−P(∑i=14ξi≤1)=1−FY4(1)=1−4!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} ⎩ ⎨ ⎧0≤x1,x2,x3,x4≤1x1+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=∫01∫1−x11∫1−min(x1,x2)1∫1−min(x1,x2,x3)1dx1dx2dx3dx4=∫01∫1−x11∫1−min(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}} 2n−11。
计算 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=∫01∫01∫max(1−x1−x2,0)1∫max(1−min(x1+x2,x1+x3,x2+x3),0)1dx1dx2dx3dx4=∫01∫01∫max(1−x1−x2,0)11−max(1−min(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}} 6n−22∗4n−2−3n−2
值得说明的是,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=141−Pi=1841≈2.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=141−Pi
由于每张牌的点数最大就是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 1≤i≤6,那么其它三张牌必须要大于 13 − i 13-i 13−i,于是其它三张牌的取值范围为 ( 13 − i , 13 ] (13-i,13] (13−i,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=164∗i3。
若 7 ≤ i ≤ 13 7\leq i\leq13 7≤i≤13,那么其实这四张牌都大于等于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=134∑i=164∗i3+73=285614165≈0.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 1≤i≤⌊2m⌋时,其它 n − 1 n-1 n−1张牌的范围是 ( m − i , m ] (m-i,m] (m−i,m],即每张牌有 i i i种取法,于是 n − 1 n-1 n−1张牌有 i n − 1 i^{n-1} in−1种取法。由于最小值所在的位置可以是 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}} n∑i=1⌊2m⌋in−1种取法。
当 ⌊ m 2 ⌋ < i ≤ m \lfloor\frac{m}{2}\rfloor<i\leq m ⌊2m⌋<i≤m时,那么其实这 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 (m−⌊2m⌋)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=mnn∑i=1⌊2m⌋in−1+mn(m−⌊2m⌋)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} limm→∞∑i=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}} limm→∞P2=limm→∞mnn∑i=12min−1+mn(m−2m)n=2n1+2n1=2n−11
这个结论跟之前连续情形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 13−i的方案数有多少种。那么这可以套用 P 2 P_2 P2的计算思想。设次小值的点数为 j j j。
若 5 ≤ j ≤ ⌊ 13 − i 2 ⌋ 5\leq j\leq \lfloor\frac{13-i}{2}\rfloor 5≤j≤⌊213−i⌋,剩下两张牌的取值范围即为 ( 13 − i − j , 13 ] (13-i-j,13] (13−i−j,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 ⌊213−i⌋<j≤13,则这三张牌可以在 ( ⌊ 13 − i 2 ⌋ , 13 ] (\lfloor\frac{13-i}{2}\rfloor,13] (⌊213−i⌋,13]内任取,共有 ( 13 − ⌊ 13 − i 2 ⌋ ) 3 (13-\lfloor\frac{13-i}{2}\rfloor)^3 (13−⌊213−i⌋)3种方案。考虑到最小值的位置有4种取法,即为 4 ∗ ( 13 − ⌊ 13 − i 2 ⌋ ) 3 4*(13-\lfloor\frac{13-i}{2}\rfloor)^3 4∗(13−⌊213−i⌋)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 A42∑i=14∑j=5⌊213−i⌋(i+j)2+4∑i=14(13−⌊213−i⌋)3=12∗(62+72+72+82)+4∗(73+83+83+93)=10760
③若有2张牌点数都小于等于4,则假设这两张牌点数和为 i i i。那么剩下两张牌的点数的范围就是 ( 13 − i , 13 ] (13-i,13] (13−i,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−∣5−i∣。
这两张牌需要找两个位置,有 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 C42∑i=28(4−∣5−i∣)i2=6∗(1∗22+2∗32+3∗42+4∗52+3∗62+2∗72+1∗82)=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+A42∑i=14∑j=5⌊213−i⌋(i+j)2+4∑i=14(13−⌊213−i⌋)3+C42∑i=28(4−∣5−i∣)i2=19961
于是, P 3 = 19961 1 3 4 ≈ 0.6989 P_3=\frac{19961}{13^4}\approx0.6989 P3=13419961≈0.6989
顺带提一句,若每张牌的点数范围是 1 − m 1-m 1−m, 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[(m−⌊3m⌋)n+An2∑i=1⌊3m⌋∑j=⌊3m⌋+1⌊2m−i⌋(i+j)n−2+n∑i=1⌊3m⌋(m−⌊2m−i⌋)n−1+Cn2∑i=22⌊3m⌋in−2(⌊3m⌋−∣i−⌊3m⌋−1∣)]
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}} limm→∞P3=6n−22∗4n−2−3n−2
由于过于复杂,这里只给出结论,不作证明。
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) 1−P4=1341∑i=110∑j=111−i∑k=112−i−j∑l=113−i−j−k1=∑i=110∑j=111−i∑k=112−i−j(13−i−j−k)
利用公式
{
∑
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} 1−P4=28561715
于是得到 P 4 = 27846 28561 ≈ 0.9750 P_4=\frac{27846}{28561}\approx0.9750 P4=2856127846≈0.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=141−Pi=4−∑i=14Pi=4−0−1344165−13419961−13427846=2856162272≈2.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=141−Pi,通过枚举的方式,很容易计算出 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=141−Pi,使得代码非常简洁。如果直接做的话,代码写起来还是挺复杂的。
在面对一些问题时,一些人总是不满足于计算机的解法,试图通过数学的方法给出一些公式。我也是其中之一。所以我用数学的方式给出了一种解法,虽然这种解法称不上简洁,但是也在一定程度上给出了更大范围内的通用公式。虽然解决实际问题绰绰有余,但总是有人享受解决这些数学问题的乐趣。