擅长:python、mysql、java
<p>你的问题的答案是<strike>否</strike>是。该算法将在单位圆内提供均匀分布。<strike>原因是您的一些样本将超出圆圈</strike>。为了获得数学上正确的可预测均匀分布,必须使用极坐标,对于此类坐标,代码示例应执行以下操作:</p>
<pre><code>def get_random_point_in_unit_circle():
theta = random.random() * ( 2 * math.pi )
r = math.sqrt(random.random())
x = r * math.cos( theta )
y = r * math.sin( theta )
return (x, y)
</code></pre>
<p>编辑:</p>
<p>所以我的回答并不完全正确,谢谢你指出这一点。在概率方面,你的函数提供均匀分布,因为在区域内获得样本的概率是恒定的。拒绝解决方案的缺点是不可预测性。在</p>