为了账号安全,请及时绑定邮箱和手机立即绑定

在圆内生成随机点(均匀)

在圆内生成随机点(均匀)

在圆内生成随机点(均匀)我需要在半径为R的圆内生成一个均匀的随机点。我意识到,通过在区间[0 ...2π)中选择一个均匀的随机角度,并且在区间(0 ... R)中均匀随机半径,我将最终得到更多的点朝向中心,因为两个给定半径,较小半径中的点将比较大半径中的点更接近彼此。我在这里发现了一篇关于此的博客文章,但我不理解他的推理。我想它是正确的,但我真的想从他得到的地方(2 / R 2)× r以及他如何得出最终解决方案中理解。更新:发布此问题7年后,我仍然没有收到有关平方根算法背后数学的实际问题的满意答案。所以我花了一天时间自己写答案。链接到我的答案。
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

这是一个快速而简单的解决方案。

选择范围(0,1)中的两个随机数,即ab。如果b < a,交换它们。你的意思是(b*R*cos(2*pi*a/b), b*R*sin(2*pi*a/b))

您可以按如下方式考虑此解决方案。如果你拿圆圈,剪掉它,然后将它拉直,你会得到一个直角三角形。规模是倒三角形,而且你从有一个三角形(0, 0),以(1, 0)(1, 1),然后再返回来(0, 0)。所有这些变换均匀地改变了密度。你所做的是在三角形中统一选取一个随机点并反转过程以获得圆圈中的一个点。


查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 2094 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信