【发布时间】:2021-12-20 17:10:01
【问题描述】:
假设我有一些对象的vector<Point> p。
我可以通过简单的p[rand() % p.size()] 随机选择一个。
现在假设我有另一个相同大小的双精度向量 vector <double> chances。
我想从 p 中随机抽样,每个元素的概率类似于它在 chances 中的值(总和可能不是 1.0)。如何在 C++ 中实现这一点?
【问题讨论】:
-
您可以使用
std::discrete_distribution获得一个根据您的chances向量分布的整数,然后将该整数用作点向量的索引。 -
rand() % someNumberis not a uniform distribution.