说我有一个矩形[a,b]x[c,d]
,其中a,b,c,d
是实数。
我想产生k
个点(x,y)
,该点是从该矩形中均匀采样的,即a <= x <= c
和b <= y <= d
。
显然,如果可以从[0,1]x[0,1]
进行采样,则
问题已经解决了。如何在python
中实现两个目标中的任何一个?
还是例如R
之类的其他工具?
答案 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相同:)
编辑:哦,我是在梅里格之后发送的