gpt4 book ai didi

c++,如何以给定的概率随机选择数字

转载 作者:太空狗 更新时间:2023-10-29 21:05:55 26 4
gpt4 key购买 nike

我有 N 个数字 n_1、n_2、...n_N 和相关概率 p_1、p_2、...、p_N。函数应以概率 p_i 返回数字 n_i,其中 i =1, ..., N。如何在 C++ 中建模?
我知道这不是一个难题。但是我是c++的新手,想知道你会用到什么函数。你会像这样生成 0 和 1 之间的统一随机数吗:

((double) rand() / (RAND_MAX+1))

最佳答案

这与我对这个问题的回答非常相似:

changing probability of getting a random number

你可以这样做:

double val = (double)rand() / RAND_MAX;

int random;
if (val < p_1)
random = n_1;
else if (val < p_1 + p_2)
random = n_2;
else if (val < p_1 + p_2 + p_3)
random = n_3;
else
random = n_4;

当然,这种方法只有在 p_1 + p_2 + p_3 + p_4 == 1.0 时才有意义。

这可以很容易地推广到可变数量的输出和概率,使用几个数组和一个简单的循环。

关于c++,如何以给定的概率随机选择数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8642135/

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