Python :(均匀)从矩形采样

时间:2019-04-02 20:11:54

标签: python random

说我有一个矩形[a,b]x[c,d],其中a,b,c,d是实数。 我想产生k个点(x,y),该点是从该矩形中均匀采样的,即a <= x <= cb <= y <= d。 显然,如果可以从[0,1]x[0,1]进行采样,则 问题已经解决了。如何在python中实现两个目标中的任何一个? 还是例如R之类的其他工具?

2 个答案:

答案 0 :(得分:0)

您可以使用random.uniform()

import random

x, y = random.uniform(a, b), random.uniform(c, d)

如果您想要其中的k个,则可以进行列表理解

coords = [(random.uniform(a, b), random.uniform(c, d)) for _ in range(k)]

答案 1 :(得分:-1)

我认为模运算符(%)是您的朋友,以检查x和y是否在[a,c]和[b,d]中

如果您不能使用2个数字(其他0和1)之间的随机数,则可以尝试使x = (random() *(c-a)+a) 与y相同:)

编辑:哦,我是在梅里格之后发送的