c++ rand随机数生成(随机种子设置)
时间: 2023-07-22 19:31:10 浏览: 264
在C++中,使用rand()函数可以生成伪随机数。为了让每次运行程序生成的随机数都不一样,需要设置随机数种子,可以使用srand()函数来设置。
例如,如果想要生成一个0到99的随机数,可以使用以下代码:
```
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
// 设置随机数种子
srand(time(NULL));
// 生成0到99的随机数
int random_num = rand() % 100;
std::cout << "随机数:" << random_num << std::endl;
return 0;
}
```
在上面的代码中,我们使用time(NULL)函数来获取当前时间戳作为随机数种子。每次运行程序时,时间戳都不同,因此生成的随机数也不同。然后使用rand()函数生成一个0到99之间的随机数。最后输出生成的随机数。
相关问题
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之间的随机数。
阅读全文