gpt4 book ai didi

C++随机数总是相同的

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:25:23 25 4
gpt4 key购买 nike

我目前无法在运行时生成随机数。在 Java 中,我只需调用 Math.random() 就大功告成了(我只需要一个简单的 RNG)。在 C++ 中,我尝试了几种生成随机数的方法,但最终总是得到相同的结果。

目前,我正在使用以下方法获取介于 MIN 和 MAX 之间的随机数:

unsigned int getRandomNumber(int min, int max){
std::mt19937 mt(1729);
std::uniform_int_distribution<int> dist(min, max);
return dist(mt);
}

我有一个对象在其构造函数中调用此函数并将返回的值分配给属性。我目前创建了这个对象的五个实例,随机数总是相同的。设置较大的范围 (1 - 1000) 不会改变这一点。号码总是一样的。安全性不是问题,它是一个极其简单的应用程序。

最佳答案

随机数生成器使用 seed .基本上,它是一个只设置一次的数字,供随机数生成器使用。如果您每次尝试生成一个数字时都重新播种随机数生成器,您每次都会得到相同的数字。您应该只创建一次 std::mt19937 对象。

关于C++随机数总是相同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36970046/

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