Math 加权随机坐标

Math 加权随机坐标,math,random,weighted,Math,Random,Weighted,这可能更像是在寻找一个术语,但解决方案也是受欢迎的。我想创建n个随机的x,y坐标。我遇到的问题是,我希望坐标被“加权”,或者有更多的机会接近某个特定点。我通过使用以下伪代码创建了一些接近的东西: x = rand(100) //random integer between 0 and 100 x = rand(x) //random number between 0 and the previous rand value //randomize x to positive or negative

这可能更像是在寻找一个术语,但解决方案也是受欢迎的。我想创建n个随机的x,y坐标。我遇到的问题是,我希望坐标被“加权”,或者有更多的机会接近某个特定点。我通过使用以下伪代码创建了一些接近的东西:

x = rand(100) //random integer between 0 and 100
x = rand(x) //random number between 0 and the previous rand value
//randomize x to positive or negative
//repeat for y
这可以将对象拉向0,0-但是如果创建足够多的点,则可以看到x轴和y轴的图案。这是因为,即使x设法达到100,y也很有可能接近


我想避免x,y线的形成。如果有办法加入多个“加权坐标”,随机坐标会被吸引到其中,而不是静态地吸引到0,0,则会获得额外的分数。

这在极坐标中更容易实现。你所要做的就是产生一个均匀的随机角度和一个功率分布的距离。下面是Python中的一个示例:

import math
from random import random

def randomPoint(aroundX, aroundY, scale, density):
  angle = random()*2*math.pi

  x = random()
  if x == 0:
    x = 0.0000001

  distance = scale * (pow(x, -1.0/density) - 1)
  return (aroundX + distance * math.sin(angle),
          aroundY + distance * math.cos(angle))
以下是
随机点(0,0,1,1)的分布情况

我们可以通过
随机点(1,2,1,1)
将其移动到另一个点(如1,2)的中心:

我们可以通过扩大规模来扩大范围。以下是
随机点(0,0,3,1)

我们可以通过改变密度来改变形状,也就是聚集在一起的趋势<代码>随机点(0,0,1,3)


这在极坐标系下更容易。你所要做的就是产生一个均匀的随机角度和一个功率分布的距离。下面是Python中的一个示例:

import math
from random import random

def randomPoint(aroundX, aroundY, scale, density):
  angle = random()*2*math.pi

  x = random()
  if x == 0:
    x = 0.0000001

  distance = scale * (pow(x, -1.0/density) - 1)
  return (aroundX + distance * math.sin(angle),
          aroundY + distance * math.cos(angle))
以下是
随机点(0,0,1,1)的分布情况

我们可以通过
随机点(1,2,1,1)
将其移动到另一个点(如1,2)的中心:

我们可以通过扩大规模来扩大范围。以下是
随机点(0,0,3,1)

我们可以通过改变密度来改变形状,也就是聚集在一起的趋势<代码>随机点(0,0,1,3)


我就知道这里会有一个巨蟒人来回答。我可能会运行多次,在一个平面上得到多个加权坐标。谢谢,我就知道会有一个巨蟒人在这里回答。我可能会运行多次,在一个平面上得到多个加权坐标。非常感谢。