相关疑难解决方法(0)

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

我需要在半径为R的圆内生成一个均匀的随机点.

我意识到,通过在区间[0 ...2π)中选择一个均匀的随机角度,并且在区间(0 ... R)中均匀随机半径,我会得到更多的点朝向中心,因为两个给定半径,较小半径中的点将比较大半径中的点更接近彼此.

在这里发现了一篇关于此的博客文章,但我不理解他的推理.我想它是正确的,但我真的想从他得到的地方(2/R 2r以及他如何得出最终解决方案中理解.


更新:发布此问题7年后,我仍然没有收到有关平方根算法背后数学的实际问题的满意答案.所以我花了一天时间自己写答案.链接到我的答案.

random math geometry probability

194
推荐指数
10
解决办法
12万
查看次数

在环空中创建随机数

我正在尝试生成一个环形内的随机数,即我们有一个最大和最小半径.我试过做:

while True:
    x=random.uniform(-maxR, maxR)
    y=random.uniform(-maxR, maxR)
    R=math.sqrt(x**2 + y**2)
    if R <= maxRadius and R >= minRadius:
        if x>= -maxRadius and x <= maxRadius and x<=-minRadius and x>= minRadius:
            print "passed x"
            if y>= -maxRadius and y <= maxRadius and y<=-minRadius and y>= minRadius: 
                break
Run Code Online (Sandbox Code Playgroud)

但这很慢.是否有可能提供更多的约束random.uniform或是否有另一种方法?

python random

8
推荐指数
1
解决办法
2525
查看次数

标签 统计

random ×2

geometry ×1

math ×1

probability ×1

python ×1