在C++中,可以使用一些库来将离散分布用作类变量。以下是一个使用C++标准库random中的离散分布类进行示例的方法:
#include <iostream>
#include <random>
#include <map>
using namespace std;
map<int, double> probabilities;
probabilities[1] = 0.2;
probabilities[2] = 0.3;
probabilities[3] = 0.5;
discrete_distribution<int> distribution(probabilities.begin(), probabilities.end());
在上述示例中,我们使用map来存储每个值和其对应的概率。然后,我们将这些概率传递给离散分布对象的构造函数。
random_device rd;
mt19937 generator(rd());
int randomValue = distribution(generator);
在上述示例中,我们使用random_device生成一个随机种子,并将其传递给mt19937生成器。然后,我们调用离散分布对象的operator()来生成一个随机数。
完整的示例代码如下:
#include <iostream>
#include <random>
#include <map>
using namespace std;
int main() {
map<int, double> probabilities;
probabilities[1] = 0.2;
probabilities[2] = 0.3;
probabilities[3] = 0.5;
discrete_distribution<int> distribution(probabilities.begin(), probabilities.end());
random_device rd;
mt19937 generator(rd());
int randomValue = distribution(generator);
cout << "Random value: " << randomValue << endl;
return 0;
}
这个示例中,我们使用了C++标准库random中的离散分布类来将离散分布用作类变量。我们使用map来存储每个值和其对应的概率,并使用离散分布对象来生成一个随机数。
领取专属 10元无门槛券
手把手带您无忧上云