用相同的公式生成0和1之间的两个随机变量

Generating Two Random Variables Between 0 and 1 Using Same Formula

本文关键字:之间 两个 变量 随机      更新时间:2023-10-16

我试图在主函数开始时生成0和1之间的两个不同的随机变量。我需要这两个变量来比较不同的可能结果。然而,当我试图运行公式两次,它说"重新定义gen"错误。有人可以建议如何解决这个错误,这样我就可以重复使用相同的公式,并将值存储到两个不同的变量。

  random_device rd;
    mt19937 gen(rd());
    uniform_real_distribution<> dis(0, 1);
    auto value = dis(gen);
    cout << "r value is " << value << endl;
  random_device sd;
    mt19937 gen(sd());
    uniform_real_distribution<> dis(0, 1);
    auto c = dis(gen);
    cout << "c value is " << c << endl;}

只需将第二个生成器重命名为gen2(与dis2相同):

random_device rd;
mt19937 gen(rd());
uniform_real_distribution<> dis(0, 1);
auto value = dis(gen);
cout << "r value is " << value << endl;
random_device sd;
mt19937 gen2(sd());
uniform_real_distribution<> dis2(0, 1);
auto c = dis2(gen2);
cout << "c value is " << c << endl;}

您可以重用发行版和生成器:

std::random_device rd;
std::mt19937 gen(rd());
std::uniform_real_distribution<> dis(0, 1);
auto value = dis(gen);
auto c = dis(gen);