gpt4 book ai didi

c++ - 我的结果并不是真正随机的;我怎样才能解决这个问题?

转载 作者:行者123 更新时间:2023-12-05 09:03:41 24 4
gpt4 key购买 nike

float genData(int low, int high);

int main(){
srand(time(0));
float num = genData(40, 100);
cout << fixed << left << setprecision(2) << num << endl;
return 0;
}

float genData(int low, int high) {
low *= 100;
high *= 100 + 1;
int rnd = rand() % (high - low) + low;
float newRand;
newRand = (float) rnd / 100;
return newRand;
}

我期望一个介于 40 和 100 之间的随机数,包含两位小数。例如:69.69、42.00

我得到的是具有不同小数值的相同数字,每次运行程序时都会缓慢增加。

最佳答案

使用 <random>标题:

#include <iostream>
#include <random>

float getData(int const low, int const high) {
thread_local auto engine = std::mt19937{ std::random_device{}() };

auto dist = std::uniform_int_distribution<int>{ low * 100, high * 100 };

return dist(engine) / 100.0f;
}

int main() {
for (auto i = 0; i != 5; ++i) {
std::cout << getData(40, 100) << '\n';
}
}

关于c++ - 我的结果并不是真正随机的;我怎样才能解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69670273/

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