只要能理解就可以~~~
[quote=引用 17 楼 ooolinux 的回复:] [quote=引用 16 楼 早打大打打核战争 的回复:] 而他的计算方法,每一个同心圆周上点的个数都相同 =============================== 他只是把每个生成的随机点都沿半径方向远离圆心一点,没考虑圆周,比较圆周上的点是你的想法
[quote=引用 16 楼 早打大打打核战争 的回复:] 而他的计算方法,每一个同心圆周上点的个数都相同 =============================== 他只是把每个生成的随机点都沿半径方向远离圆心一点,没考虑圆周,比较圆周上的点是你的想法
而他的计算方法,每一个同心圆周上点的个数都相同 =============================== 他只是把每个生成的随机点都沿半径方向远离圆心一点,没考虑圆周,比较圆周上的点是你的想法
这是按你的思路画的示意图: 每个圆周上的随机点都是均匀分布的(三个圆周长之比为1:2:3),但是在整个平面上点的分布并不均匀,比如中心的3x3方格内有9个点,而扩大一圈之后,5x5的方格内只有13个点,显然这样的分布还是趋向于圆心密集的,要保证平面内的点分布均匀,外圈圆周上的点密度应该高于内圈,而不是相同。
因为修正后每个生成的随机点都沿半径方向远离圆心一点,所以需要考虑一定面积内的随机点 你的想法的问题在于,均匀分布实际是在单位面积内的均匀,不是若干同心圆环上等弧长的均匀分布,那样从单位面积来看是不均匀的,你画一下就知道了
是一个意思,他的算法取随机极坐标长度r = sqrt(k)*R,其中R是圆半径,k∈[0, 1]内分布的随机数 和 设圆半径为1,取随机极坐标长度ρ∈[0, 1],然后使用r=sqrt(ρ)是一回事
如果 极坐标,角度随机值,长度随机值,结果肯定不是均匀分布的,而是趋向于圆心分布,因为极坐标转化为直角坐标 x=ρ*cosθ y=p*sinθ 而cosθ/sinθ的值不是随着θ线性变化的。 他那个算法中r = sqrt(k)*R,k∈[0, 1],实际上是改变了ρ的分布,抵消了cosθ/sinθ的非线性分布,不过具体证明我也不了解,网上应该能找到相关资料
64,681
社区成员
250,490
社区内容
加载中
试试用AI创作助手写篇文章吧