0%

高维概率问题

这个问题是视频《Darts in Higher Dimensions》后的思考题。

视频是由3Blue1BrownManim (Mathematical Animation Engine) 引擎制作

问题

等概率地从区间 [0,1] 中不停地取数,直到这些数的和超过 1 为止。记 xi 为第 i 次取出的数,n 为这些数的个数,即有 ni=1xi>1 ,且 n1i=1xi1 。求个数 n 的数学期望 E(n)

解答

显然个数 n 的数学期望 E(n)=k=1kP(n=k)

问题转变为求 n=k 时的概率 P(n=k)

Pk=P(x1+x2++xk1) ,则 Pk 表示个数 n 不小于 k+1 的概率,即 Pk=P(n>k) 。这样有 P(n=k)=P(n>k1)P(n>k)

将式(2)代入式(1)可得 E(n)=k=1k[P(n>k1)P(n>k)]=k=1P(n>k1)=k=1Pk1

问题又转变为求概率 Pk

Pk=P(x1+x2++xk1) ,显然,P0=1P1=1

对于二维空间,P2=三角形面积正方形面积=0.5 ;对于三维空间,P3=三棱锥体积正方体体积=0.1˙6 。实际上概率 Pk 就对应 k 维空间分割。

k 维切片得到 k1 维,将 k1 维的测度积分得到 k 维的测度(属实抽象)

下面采用纯概率的思想来计算 Pk

0|x1|x2|x31x1x21x11|

如上图所示,以三维为例,计算 P3 的值:

  • 首先确定取出 x1,则从长度为 1 的区间中取到 x1 的概率为 dx1/1
  • 接着取出 x2,为满足要求,则只能从长度为 1x1 的区间中取值,同样的概率为 dx2/1
  • 最后取出 x3,而 x3 的可选区间由 x1x2 确定,其长度为 1x1x2

于是,P3 的计算式为 P3=(10dx11)(1x10dx21)(1x1x2)=16

应用上述计算思想来求 PkPk=(10dx11)(\textcolor0coral1x1xn2dxn11)(\textcolorcoral1x1xn2xn1)=(10dx11)(\textcolor0coral1x1xn3dxn21)(\textcolorcoral1x1xn3xn2)22!=(10dx11)(\textcolor0coral1x1xn4dxn31)(\textcolorcoral1x1xn4xn3)33!==10(1x1)k1(k1)!dx1=1k!

(5)的推导用到了下式 t0(tx)kk!dx=tk+1(k+1)!

式中 t 代表式(5)中被标记为橘色的部分

将式(5)代入式(3)可得 E(n)=k=11(k1)!=1+11!+12!+13!+14!+=e

个数 n 的数学期望为自然常数 e ,约为2.71828182845904

实验验证

MATLAB程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
% 由实验计算个数n的数学期望
clc;clear;

num=10^6;% 随机实验次数
record1=zeros(num,1);% 记录每次实验得到的个数

for i=1:num
s=0;k=0;
while s<=1
temp=rand(1);% 返回一个在区间(0,1)内均匀分布的随机数
s=s+temp;
k=k+1;
end
record1(i)=k;
end

record2=tabulate(record1);% 统计个数k的频数
EN=sum(record2(:,1).*record2(:,3)/100);% 个数n的数学期望
disp(['期望 = ',sprintf('%1.5f',EN)]);

随机实验次数与 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