我该怎么做?

这是我这样做的尝试:

srand (time(NULL));
seed = ((double)rand()) / ((double)RAND_MAX) * 10 + 0.5;

还有在 0 和一些 int x 之间创建随机 整数 的方法是什么。 [0,x]

最佳答案

C++11方式:

#include <random>

std::random_device rd;
std::default_random_engine generator(rd()); // rd() provides a random seed
std::uniform_real_distribution<double> distribution(0.1,10);

double number = distribution(generator);

如果您只需要整数,请改用此分布:
std::uniform_int_distribution<int> distribution(0, x);

在这方面,C++11 非常强大且设计精良。生成器与分布的选择是分开的,考虑范围,线程安全,性能好,人们花了很多时间来确保一切正确。最后一部分比你想象的更难做到。

关于c++创建0.1和10之间的随机小数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19652657/

10-11 14:13