【发布时间】:2021-12-02 20:46:12
【问题描述】:
我有:
std::random_device rd;
std::mt19937 mt(rd());
std::uniform_int_distribution<int> probability(0, 100);
我想排除这个概率范围内的一些数字。
示例 1:假设我想生成一个介于 0 和 100 之间的随机数,但这个数字永远不会是 4。
示例 2:假设我想生成一个 0 到 100 之间的随机数,但这个数字永远不能是 4 到 7 之间的任何数字。
我想知道是否可以在不使用std::rand 的情况下在现代C++ 中实现?
【问题讨论】:
-
您可以使用
std::discrete_distribution并将您不希望的值设置为零概率。