这个问题是视频《Darts in Higher Dimensions》后的思考题。
视频是由3Blue1Brown的Manim (Mathematical Animation Engine) 引擎制作
问题
等概率地从区间 [0,1] 中不停地取数,直到这些数的和超过 1 为止。记 xi 为第 i 次取出的数,n 为这些数的个数,即有 n∑i=1xi>1 ,且 n−1∑i=1xi≤1 。求个数 n 的数学期望 E(n) 。
解答
显然个数 n 的数学期望 E(n)=∞∑k=1k⋅P(n=k)
问题转变为求 n=k 时的概率 P(n=k) 。
记 Pk=P(x1+x2+⋯+xk≤1) ,则 Pk 表示个数 n 不小于 k+1 的概率,即 Pk=P(n>k) 。这样有 P(n=k)=P(n>k−1)−P(n>k)
将式(2)代入式(1)可得 E(n)=∞∑k=1k⋅[P(n>k−1)−P(n>k)]=∞∑k=1P(n>k−1)=∞∑k=1Pk−1
问题又转变为求概率 Pk 。
Pk=P(x1+x2+⋯+xk≤1) ,显然,P0=1 、P1=1
对于二维空间,P2=三角形面积正方形面积=0.5 ;对于三维空间,P3=三棱锥体积正方体体积=0.1˙6 。实际上概率 Pk 就对应 k 维空间分割。
将 k 维切片得到 k−1 维,将 k−1 维的测度积分得到 k 维的测度(属实抽象)
下面采用纯概率的思想来计算 Pk 。
0|x1⏞⋯⋯|x2⏞⋯⋯|x3⏞⋯⋯⏟1−x1−x2⏟1−x11|
如上图所示,以三维为例,计算 P3 的值:
- 首先确定取出 x1,则从长度为 1 的区间中取到 x1 的概率为 dx1/1 ;
- 接着取出 x2,为满足要求,则只能从长度为 1−x1 的区间中取值,同样的概率为 dx2/1 ;
- 最后取出 x3,而 x3 的可选区间由 x1、x2 确定,其长度为 1−x1−x2 。
于是,P3 的计算式为 P3=(∫10dx11)(∫1−x10dx21)(1−x1−x2)=16
应用上述计算思想来求 Pk : Pk=(∫10dx11)⋯(∫\textcolor0coral1−x1−⋯−xn−2dxn−11)(\textcolorcoral1−x1−⋯−xn−2−xn−1)=(∫10dx11)⋯(∫\textcolor0coral1−x1−⋯−xn−3dxn−21)(\textcolorcoral1−x1−⋯−xn−3−xn−2)22!=(∫10dx11)⋯(∫\textcolor0coral1−x1−⋯−xn−4dxn−31)(\textcolorcoral1−x1−⋯−xn−4−xn−3)33!=⋯⋯⋯=∫10(1−x1)k−1(k−1)!dx1=1k!
式(5)的推导用到了下式 ∫t0(t−x)kk!dx=tk+1(k+1)!
式中 t 代表式(5)中被标记为橘色的部分
将式(5)代入式(3)可得 E(n)=∞∑k=11(k−1)!=1+11!+12!+13!+14!+⋯=e
个数 n 的数学期望为自然常数 e ,约为2.71828182845904
实验验证
MATLAB程序:
1 | % 由实验计算个数n的数学期望 |
随机实验次数与 E(n) 的关系:
实验次数 | 数学期望 E(n) |
---|---|
102 | 2.78000 |
103 | 2.70000 |
104 | 2.71710 |
105 | 2.71647 |
106 | 2.71826 |
107 | 2.71881 |
108 | 2.71842 |