C++不用ctime生成随机数
时间: 2024-05-06 20:16:16 浏览: 12
在 C++ 中,可以使用标准库中的 `random` 头文件来生成随机数,而无需使用 `ctime`。
以下是一个示例代码:
```cpp
#include <iostream>
#include <random>
int main() {
std::random_device rd; // 随机数种子
std::mt19937 gen(rd()); // Mersenne Twister 19937 生成器
std::uniform_int_distribution<> dis(1, 6); // 生成 1 到 6 之间的均匀分布随机数
for (int i = 0; i < 10; ++i) {
std::cout << dis(gen) << " ";
}
std::cout << std::endl;
return 0;
}
```
该程序使用了 `std::random_device` 来获取一个随机数种子,然后使用 Mersenne Twister 19937 生成器 `std::mt19937` 以及均匀分布随机数分布 `std::uniform_int_distribution` 来生成随机数。在上述示例中,我们生成了 10 个 1 到 6 之间的随机数并输出到屏幕上。
相关问题
C++不用ctime和random生成随机数
在C++中可以使用`<random>`头文件中的随机数生成器来生成随机数,以下是一个示例代码:
```cpp
#include <iostream>
#include <random>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 6);
for(int i = 0; i < 10; i++)
{
std::cout << dis(gen) << " ";
}
std::cout << std::endl;
return 0;
}
```
上述代码使用了`std::random_device`来获取一个随机种子,然后使用`std::mt19937`作为随机数生成器,最后使用`std::uniform_int_distribution<>`指定了生成的随机数的范围为1~6之间的整数。在循环中调用`dis(gen)`即可生成随机数。
c++实现生成随机数
可以使用 C++ 标准库中的 rand() 函数来生成随机数。具体实现如下:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
// 设置随机数种子
srand(time(NULL));
// 生成随机数
int random_num = rand();
cout << "随机数为:" << random_num << endl;
return 0;
}
```
需要注意的是,为了让每次生成的随机数都不同,需要在程序开始时设置随机数种子。上面的代码中,使用了当前时间作为种子,保证每次运行程序时都会生成不同的随机数。