Boost 二维随机升压

Boost 二维随机升压,boost,random,boost-random,Boost,Random,Boost Random,我试着用一个boost随机发生器来生成均匀分布在平面上的随机点。我有以下链接用于在单个维度中执行此操作: 在这里,他们使用boost::uniform_int在一个维度中以int的形式生成数字 但在我的例子中,我希望生成平面上二维的数字,如float 是否有任何分布类型可用于二维?(我已经看到了boost::uniform_on_sphere,但它是针对球面的。)使用uniform_01分布并生成两个随机数,给出x和y坐标。相应缩放:)如果x遵循均匀分布0到a,y遵循均匀分布0到b,则点(

我试着用一个boost随机发生器来生成均匀分布在平面上的随机点。我有以下链接用于在单个维度中执行此操作:

在这里,他们使用
boost::uniform_int
在一个维度中以
int
的形式生成数字

但在我的例子中,我希望生成平面上二维的数字,如
float


是否有任何分布类型可用于二维?(我已经看到了
boost::uniform_on_sphere
,但它是针对球面的。)

使用
uniform_01
分布并生成两个随机数,给出x和y坐标。相应缩放:)

如果
x
遵循均匀分布0到
a
y
遵循均匀分布0到
b
,则点
(x,y)
均匀分布在矩形
(0,0)-(a,b)
上,无需任何特殊方法。只需生成两个随机数,而不是一个


例如,在圆的边缘(当您谈论球体时),需要将它们以不同的方式分布。

您的意思是这样声明一个用于x轴,另一个用于y轴:boost::uniform_01用于_x_轴(0,2);boost::用于_y_轴(0,4)的均匀_01;我的印象是
uniform\u 01
只会在间隔
[0,1)
中生成元素(这可能很重要!),所以你可以取一个分布,然后将得到的两个值乘以比例因子。你也不需要增强。在C++11中,
std::uniform\u real\u distribution
中有一个非常类似的库,它确实需要两个参数。但是我没有得到。你能给我定义一个例子吗?我认为它们只取最大值最小数是两个随机数,它们与同一类Boosiff::一致性It类似于任意两个随机数,不管它们是生成算法,只要它是一个均匀分布算法。让我们考虑在x和y轴上分别生成随机数,然后将这些值组合成一个PL中的多个点。如果我们这样做的话,独立的均匀分布就可以了。但是组合的分布不会是均匀分布的。很可能它会改变。