1. srand,rand关键字
- srand 的作用
srand 用于给 C++ 的随机数生成器设置一个"种子"(seed),这个种子决定了随机数序列的起始点。
计算机的随机数实际上是"伪随机数",是通过数学公式计算出来的。如果没有设置种子,每次程序运行都会生成相同的"随机数"序列。
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
// srand(time(NULL)); // 使用当前时间作为种子
for(int i = 0; i < 5; i++) {
cout << rand() << " ";
}
// 每次运行输出:1804289383 846930886 1681692777 1714636915 1957747793
return 0;
}
2.C++11 引入了更好的随机数库
#include <iostream>
#include <random>
using namespace std;
int main() {
// 使用随机设备作为种子
random_device rd; // 用于获取真随机种子
mt19937 gen(rd()); // 用真随机种子初始化Mersenne Twister生成器
uniform_int_distribution<> dis(1, 100); // 定义分布范围
for(int i = 0; i < 10; i++) {
cout << dis(gen) << " "; // 生成高质量随机数
}
return 0;
}
网友评论