两个范围之间的随机数
Random number between two range
rand()或qrand()函数生成一个随机整数
int a= rand();
我想要得到一个0到1之间的随机数。我怎样才能完成这项工作?
你可以生成一个随机的int
到float
,然后除以RAND_MAX
,像这样:
float a = rand(); // you can use qrand here
a /= RAND_MAX;
结果将在0到1的范围内,包括。
使用c++ 11可以做以下事情:
包含随机标头:
#include<random>
定义PRNG和分布:
std::default_random_engine generator;
std::uniform_real_distribution<double> distribution(0.0,1.0);
获取随机数
double number = distribution(generator);
在本页和本页中,您可以找到有关uniform_real_distribution
的一些参考。
查看这篇文章,它展示了如何使用qrand来达到你的目的,这是一个围绕rand()的线程安全包装。
#include <QGlobal.h>
#include <QTime>
int QMyClass::randInt(int low, int high)
{
// Random number between low and high
return qrand() % ((high + 1) - low) + low;
}
#include <iostream>
#include <ctime>
using namespace std;
//
// Generate a random number between 0 and 1
// return a uniform number in [0,1].
inline double unifRand()
{
return rand() / double(RAND_MAX);
}
// Reset the random number generator with the system clock.
inline void seed()
{
srand(time(0));
}
int main()
{
seed();
for (int i = 0; i < 20; ++i)
{
cout << unifRand() << endl;
}
return 0;
}
从随机数中取一个模块,用于定义精度。然后执行类型转换以float并除以模块。
float randNum(){
int random = rand() % 1000;
float result = ((float) random) / 1000;
return result;
}
相关文章:
- 查找彼此之间具有不同最小距离的随机数
- 使用 std::binomial_distribution 在范围之间生成随机数
- 如何在 C++ 中获取 5 到 -5 之间的随机数
- C++ 和 Python 实现之间的不同伪随机数
- 生成随机数,并保证在给定域之间覆盖所有
- 我如何确保我的随机数在兰德生成的0和1之间不是0
- 在[0,1)C 之间生成一个随机数
- 0-1之间的随机数生成以填充容器
- 盒子muller随机数在C 中的0到1之间
- 在random_device和seed_seq之间做出决定,为多个随机数序列生成种子
- C++ 中介于 0 和 1 之间的随机数
- 本应生成 2 个介于 1 和 9 之间的随机数的程序C++只生成 6 和 9 并且没有正确循环
- 在0到1之间生成随机数
- 分叉进程之间的随机数是相同的
- 如何在 c++ 中生成 0 到 4 之间的随机数
- 介于 2 个值之间的随机数
- 如何在我存储的两个变量之间生成随机数
- 使用 C++ 的 1 到 10 之间的随机数
- 如何在c++中生成一个介于1和16之间的随机数
- C++生成一个介于 0 和 100,000 之间的随机数