c++ rand随机数生成(随机种子设置)
时间: 2023-07-22 07:35:20 浏览: 245
在C++中,我们可以使用rand()函数来生成伪随机数。要设置随机种子,我们可以使用srand()函数。
srand()函数需要传入一个整数值作为随机种子。如果我们每次使用相同的随机种子,那么每次生成的随机数序列都将是相同的。如果我们想每次都生成不同的随机数序列,可以使用当前时间作为随机种子。
下面是一个设置随机种子并生成随机数的示例代码:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
// 设置随机种子为当前时间
srand(time(NULL));
// 生成10个随机数
for (int i = 0; i < 10; i++) {
std::cout << rand() << std::endl;
}
return 0;
}
```
在上面的代码中,我们使用time(NULL)函数获取当前时间的秒数作为随机种子,然后使用srand()函数设置随机种子。接着,我们使用rand()函数生成10个随机数,并将它们输出到控制台上。
相关问题
C++使用随机数生成正整数
在C++中,你可以使用 `<cstdlib>` 或 `<random>` 标准库来生成随机正整数。这里我们主要看两个方法:
1. **使用 `rand()` 函数** (C风格):
```cpp
#include <cstdlib>
#include <ctime>
// 首先需要设置随机数种子(确保每次程序启动时生成不同的随机数)
std::srand(std::time(0));
// 使用 rand() 函数生成0到RAND_MAX之间的随机数(包含0,但通常大于INT_MAX)
int randomInteger = std::rand() % RAND_MAX + 1;
```
2. **使用 `<random>` 库** (现代C++11及以上):
```cpp
#include <iostream>
#include <random>
std::default_random_engine generator; // 创建随机引擎
std::uniform_int_distribution<int> distribution(1, 100); // 定义均匀分布,范围从1到100
// 生成一个随机数
int randomInteger = distribution(generator);
```
在这个现代方法中,`uniform_int_distribution` 可以让你更精确地控制随机数的范围,并且`default_random_engine` 提供了更好的随机性和性能。
C++生成随机种子 和随机数
生成随机种子可以使用time函数,代码如下:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
srand(time(NULL)); // 以当前时间作为随机种子
int random_num = rand() % 100; // 生成0~99之间的随机数
std::cout << "随机数为:" << random_num << std::endl;
return 0;
}
```
其中,srand函数用于设置随机数生成器的种子,time(NULL)返回当前时间的秒数,作为种子可以保证每次运行程序时生成的随机数不同。
生成随机数可以使用rand函数,代码中的rand() % 100表示生成0~99之间的随机数。
阅读全文