点出现在球体中的概率

Probability of a dot to appear in a sphere

条目:

问题:

v在球体内的概率是多少?

可能的答案:

直觉告诉我这个概率是:1 / (m * V)但我无法证明。

我觉得你的等式不对,因为 m 不影响概率。顶点坐标的分布确实如此。如果它在覆盖整个球体体积 V 的某个体积 V0 均匀 那么概率应该是:

p = V/V0

如果您想获得此类点的实际计数,则:

n = m*p = m*V/V0

我无法为您提供数学证明,但您可以简单地以编程方式执行此操作。例如,让 V0 是轴对齐的立方体,半尺寸 R=1000.0 和中心 (0,0,0) 球体作为其最大的内接球体 r=1000 和相同的中心所以:

float x,y,x0,y0,z0,r;
float rr ,X0,Y0,Z0,R;
int i,m,n;

r=1000.0; x0=0.0; y0=0.0; z0=0.0;  // sphere V
R=1000.0; X0=0.0; Y0=0.0; Z0=0.0;  // cube V0
m=10000; // number of points
Randomize();
for (i=0,n=0;i<m;i++)
 {
 // random uniformly distributed position inside V0
 x=X0+2.0*Random()*-0.5)*R;
 y=Y0+2.0*Random()*-0.5)*R;
 z=Z0+2.0*Random()*-0.5)*R;
 // compute sphere radius^2
 rr = (x-x0)*(x-x0)+(y-y0)*(y-y0)+(z-z0)*(z-z0);
 // if inside
 if (rr<=r*r) n++;
 }
// here n should be close to m*V/V0 = (4.0/3.0)*M_PI*r*r*r/(8.0*R*R*R);
// the bigger the m the more closer it should be.

这种方法有时用于计算 Pi 数字。