以给定概率生成1或0的随机函数
random function which generates 1 or 0 with given probability
我需要实现一个函数int myRand(double p)返回1或0。返回1
的概率为p
,返回0
的概率为1- p
您可以使用std::discrete_distribution
:
#include <random>
double p = 0.25;
std::random_device rd;
std::mt19937 gen(rd());
std::discrete_distribution<> distrib({ 1-p, p });
// ^^^ ^- probability for 1
// | probability for 0
std::cout << distrib(gen);
在[0..1]
范围内生成一个随机的double
,然后执行以下操作:
int randomWithProb(double p) {
double rndDouble = (double)rand() / RAND_MAX;
return rndDouble > p;
}
您只需要从[0,1]生成一个随机的浮点数。如果>p则返回1,否则返回0。
相关文章:
- 循环中的随机函数
- 如何调用随机函数
- 如何在 C++ 中获取随机函数的周期性
- C++ Arduino - 随机函数不起作用
- 随机函数在循环中调用时返回相同的数字!C++
- C++随机函数给出的相同整数是输出的两倍
- C++编写随机函数和参数
- 在另一个函数中调用随机函数
- 如何在另一种语言的随机函数中复制C++兰特?
- C++中的随机函数
- 在RFC3711(SRTP)中,OpenSSL AES_ctr128_encrypt()作为密钥派生的伪随机函数意外输出
- 值噪声随机函数奇异输出
- 每次在 c++ 中调用的随机函数
- 是否有一个随机函数可以生成 0 到 1 之间的数字
- 调用随机函数 (C++)
- 具有内部随机函数的结构的CUDA移植
- 以给定概率生成1或0的随机函数
- 随机函数在c++和Matlab中
- 实现自己的随机函数是否被普遍接受?(c++)
- C++从随机函数中移除元素