c++中生成平均分布随机数的函数
时间: 2023-06-04 19:06:36 浏览: 111
可以使用rand()函数生成随机数,并使用公式((double)rand()) / RAND_MAX来将随机数转换为0到1之间的实数。要生成平均分布随机数,可以将该实数乘以范围内的长度,再加上起始值,即可得到平均分布随机数。例如,要生成0到1之间的平均分布随机数,可以使用以下代码:
```c
double random_number = ((double)rand()) / RAND_MAX;
```
如果要生成a到b之间的平均分布随机数,可以使用以下代码:
```c
double range = b-a;
double random_number = (((double)rand()) / RAND_MAX) * range + a;
```
相关问题
c++ 生成均匀分布随机数
生成均匀分布的随机数可以使用C++的random库来实现。可以通过以下步骤来生成均匀分布的随机数:
1. 准备随机数生成引擎,可以使用默认引擎default_random_engine。
2. 创建均匀分布的随机数生成器实例,可以使用uniform_int_distribution或uniform_real_distribution,根据需要生成整数或浮点数。
3. 传入引擎利用生成器生成随机数。
下面是一个生成均匀分布随机数的示例代码:
```cpp
#include <iostream>
#include <random>
#include <vector>
using namespace std;
int main() {
// 设置随机数引擎
const int SEED = 666;
default_random_engine dre(SEED);
// 1-10均匀分布的随机数生成器
uniform_int_distribution<int> d(1, 10);
// 创建一个vector用来接收随机数
const int LEN = 20;
vector<int> v;
v.reserve(LEN);
// 生成随机数并存入vector
for (int i = 0; i < LEN; i++) {
v.push_back(d(dre));
}
// 打印结果
cout << "RESULT:" << endl;
for (int i = 0; i < LEN; i++) {
cout << v[i] << " ";
}
cout << endl;
return 0;
}
```
c++中生成一个随机数
在C++中生成随机数可以使用C++11提供的随机数库,具体步骤如下:
1. 引入头文件
```c++
#include <random>
```
2. 创建随机数引擎
```c++
std::default_random_engine e;
```
3. 创建随机数分布
```c++
std::uniform_int_distribution<int> u(0, 9);
```
其中,`uniform_int_distribution`是随机数分布类,`int`是随机数的类型,`(0, 9)`表示随机数的范围是0到9。
4. 生成随机数
```c++
int random_num = u(e);
```
其中,`e`是随机数引擎,`u`是随机数分布,`random_num`是生成的随机数。
完整代码如下:
```c++
#include <iostream>
#include <random>
int main() {
std::default_random_engine e;
std::uniform_int_distribution<int> u(0, 9);
int random_num = u(e);
std::cout << "Random number: " << random_num << std::endl;
return 0;
}
```