数学、圆、内部点和密度

3
理论如下:我有一个半径为R,中心点为S的圆C。在这个圆内,我想放置N(一个“大”数字)个点,使得在圆内所有点的周围V处的点密度相等。当N趋近于无穷大且周围V趋近于P时,极坐标和直角坐标系下的密度函数都变为常数。
那么,如果我想用恒定密度的N个点填充圆形,应该怎样做呢?

4
绝对适合发布在:http://mathoverflow.net/ 上。 - Paul Sasik
4
胡说八道,这是一个适合在这里讨论的算法问题。如果发到Mathoverflow上,它会因为太简单而立即被关闭。 - starblue
1
@psasik:你有没有看过MathOverflow?这不是你会在那里问的问题类型。如果这不是一个算法问题,那我不知道什么才能够被归类为算法问题了。毕竟,在这里有超过3000个标记为算法的问题。 - Johann Gerell
我同意,mathoverflow.net 比 stackoverflow 更加挑剔。他们会认为这是琐碎的。 - ldog
在极坐标和直角坐标系中的密度函数变成了一个常数。极坐标中的密度是什么意思?在两个坐标系中都有恒定的密度是可能的吗? - starblue
@starblue:我可能是个彻头彻尾的门外汉,但我并没有看出任何奇怪之处。对我来说,在系统1中的一个点与系统2中的同一点相同,并且无论我们用(x,y)还是(r,theta)描述该点,其周围看起来都是相同的。 - Johann Gerell
1个回答

6
请参考磁盘随机点选取。您可以随机生成一个0到2*pi的角度和一个0到1的半径,两者均匀分布。然后生成的点为:
x = Sx + R*sqrt(r)*cos(theta)
y = Sy + R*sqrt(r)*sin(theta)

另一个可能的方法是在边界正方形中生成点,并拒绝位于圆外的点。
编辑:这将使笛卡尔坐标系中的概率密度函数恒定(这可能是您想要的),但在极坐标系中不是恒定的,因为更大的r将具有更高的概率。您不能同时使它们都是常数。

Interjay,你正确地意识到,如果在一个坐标系中是常数,则在另一个坐标系中则不是。这是一个数学属性,意味着原帖是一个不适当的问题。 - ldog
此外,您不应该在正方形中生成点并拒绝在笛卡尔坐标系中获得恒定密度。这会干扰随机过程,改变密度。相反,只需选择随机变量0 <= X <= 1和0 <= Y <= sqrt(1-X^2)。 - ldog
面向对象编程应该包括 -1 <= X <= 1 和 -sqrt(1-X^2) <= Y <= sqrt(1-X^2)。 - ldog
@gmatt,但是在右侧和左侧(X接近+/-1)会有更高的密度,其中Y的范围较小。 - interjay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接