gpt4 book ai didi

c++ - 使用 Mersenne-Twister 生成多个随机值

转载 作者:行者123 更新时间:2023-11-27 23:48:35 27 4
gpt4 key购买 nike

我最近在使用 Mersenne-Twister 算法在 C++ 中生成随机数时遇到了一个问题。当遍历for循环并使用cout输出生成的数字时,它会重复输出相同的数字。例如,它输出类似 11 11 11 而不是 11 43 124。我将如何用代码实现这一目标?我当前的代码发布在下面。

#include <iostream>
#include <random>
#include <Windows.h>
#include <unistd.h>

using namespace std;

int main()
{
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dis(15000, 120000);
int random = dis(gen);

int i = 1;
while (i = 1) {
cout << random << endl;
}
return 0;

非常感谢任何帮助。

最佳答案

random 是一个整数对象。整数对象的值不会改变,除非您设置它的值。您在这里所做的类似于掷骰子,记下随机结果,然后反复阅读您所写的内容,期望写入的结果会发生变化。

您可以通过在分布函数上多次应用生成器对象来生成多个随机数:

while (...)
cout << dis(gen) << endl;

关于c++ - 使用 Mersenne-Twister 生成多个随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48552933/

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