gpt4 book ai didi

C++11 范围内的随机数和明确的可能性

转载 作者:太空狗 更新时间:2023-10-29 19:58:44 24 4
gpt4 key购买 nike

我想知道我可以在给定范围内生成随机数 (C++11) 并控制某些数字出现的可能性。假设我生成 0 到 4 之间的随机数,其中数字“1”有 50% 的可能性被抽到集合中。

最佳答案

如果范围是 [0, n) 那么你可以使用 std::discrete_distribution .

对于将 1 设置为 50% 的具体示例,您可以这样做:

#include <iostream>
#include <random>

int main() {
std::random_device rd;
std::mt19937 gen(rd());
std::discrete_distribution<> d({10, 50, 30, 10});
for(unsigned i = 0; i < 10; ++i) {
std::cout << d(gen) << '\n';
}
}

您还可以使用其他采样分布,例如 std::piecewise_constant_distribution std::piecewise_linear_distribution .与 <random> 中的许多其他不同发行版一起 header 。

关于C++11 范围内的随机数和明确的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com