生成随机数是C++编程中常常需要使用到的功能之一,C++标准库提供了一些库函数可以实现生成随机数的功能,下面我将详细讲解“C++生成随机数的实现代码”的完整攻略:
使用rand()函数生成随机数
rand()函数是C++标准库提供的用于生成随机数的函数。使用rand()需要包含头文件
- 设置随机数种子
要想生成真正的随机数,必须先设置不同的随机数种子,否则每次运行程序生成的随机数都是相同的。设置随机数种子可以用srand()函数。
以下是示例代码:
#include <iostream>
#include <cstdlib> // 包含随机数函数所需的头文件
using namespace std;
int main() {
// 设置随机数种子
srand( (unsigned)time( NULL ) );
// 希望生成的随机数个数
for(int i=0; i<10; i++){
// rand()会返回一个介于0和RAND_MAX之间的随机整数
cout << rand() << endl;
}
return 0;
}
在上述代码中,使用srand()函数设置了随机数种子,设置的随机数种子是time(NULL),这里time(NULL)返回当前时间的秒数,保证了每次运行程序都会生成不同的随机数序列。
- 生成随机数
调用rand()函数可以生成随机数。
以下是示例代码:
#include <iostream>
#include <cstdlib> // 包含随机数函数所需的头文件
using namespace std;
int main() {
// 设置随机数种子
srand( (unsigned)time( NULL ) );
// 希望生成的随机数个数
for(int i=0; i<10; i++){
// rand()会返回一个介于0和RAND_MAX之间的随机整数
cout << rand() << endl;
}
return 0;
}
在上述代码中,利用for循环调用rand()函数生成10个随机数。
使用random库函数生成随机数
C++11标准新增了一个随机数库,即
- 使用std::uniform_int_distribution生成整型随机数
以下是示例代码:
#include <iostream>
#include <random>
using namespace std;
int main() {
random_device rd; // 用于获取随机数种子
mt19937 gen(rd()); // 产生随机数引擎,初始化随机数种子
uniform_int_distribution<int> dis(1, 100); // 生成[1, 100]范围内的整型随机数
// 生成10个随机数
for(int i=0; i<10; i++){
cout << dis(gen) << endl;
}
return 0;
}
在上述代码中,创建了一个随机数种子random_device,使用该随机数种子初始化随机数引擎mt19937,然后创建std::uniform_int_distribution对象dis,它可以生成[1, 100]范围内的整型随机数,最后使用dis(gen)函数调用来生成10个随机数。
- 使用std::uniform_real_distribution生成实型随机数
以下是示例代码:
#include <iostream>
#include <random>
using namespace std;
int main() {
random_device rd; // 用于获取随机数种子
mt19937 gen(rd()); // 产生随机数引擎,初始化随机数种子
uniform_real_distribution<double> dis(0, 1); // 生成[0, 1)范围内的实型随机数
// 生成10个随机数
for(int i=0; i<10; i++){
cout << dis(gen) << endl;
}
return 0;
}
在上述代码中,创建了一个随机数种子random_device,使用该随机数种子初始化随机数引擎mt19937,然后创建std::uniform_real_distribution对象dis,它可以生成[0, 1)范围内的实型随机数,最后使用dis(gen)函数调用来生成10个随机数。
至此,C++生成随机数的实现代码的完整攻略已经讲解完毕。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++生成随机数的实现代码 - Python技术站