擅长:python、mysql、java
<p>最后一种方法<a href="http://mathworld.wolfram.com/SpherePointPicking.html" rel="nofollow noreferrer">here</a><sup>(1)</sup>适用于任何维度的球体:</p>
<p>在球体上随机选取一个点:<br/>
-生成N个高斯随机变量<code>x1,x2..xN</code><br/>
-求x的范数[i]</p>
<pre><code> L = Sqrt(x1*x1 + x2*x2 + .. + xn*xn)
ux1 = x1 / L
ux2 = x2 / L
...
</code></pre>
<p>则矢量ux[i]在曲面S<sup>N-1上的分布是均匀的</p>
<p>在环内提供均匀分布:<br/>
-在范围内生成均匀随机</p>
<p><code>R_NPow = RandomUniform(R_Inner</code><sup>N</sup><code>, R_Outer</code><sup>N</sup>)</p>
<p>得到半径(比如<a href="https://stackoverflow.com/questions/41912170/trying-to-generate-random-x-y-coordinates-within-a-ring-in-python/41912356#41912356">this 2D case</a>)</p>
<p><code>R = R_NPow</code><sup>1/N</sup></p>
<p>然后计算得到的点坐标:</p>
^{pr2}$
<p>(1)Muller,M.E.“关于在维球面上均匀生成点的一种方法的注记”,通讯协会计算机。机器。1959年4月2日19-20日。在</p>