C++不用ctime生成随机数
时间: 2024-05-06 13:16:16 浏览: 84
在 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)`即可生成随机数。
dev c++ 怎么用c++生成随机数
Dev-C++ 是一款基于 Mingw 的 C++ 开发环境,在 Dev-C++ 中生成随机数,你可以使用 `<cstdlib>` 或 `<random>` 模块提供的函数。这里简单介绍两种常用的方式:
1. **使用 `rand()` 函数** (旧式方法):
```cpp
#include <cstdlib>
#include <ctime>
// 首先需要初始化随机数种子,通常用当前时间
std::srand(std::time(0));
// 然后生成随机整数,范围通常是 [0, RAND_MAX]
int random_number = rand();
```
注意 `RAND_MAX` 可能因系统而异,通常在 `<climits>` 中能找到。
2. **使用 `<random>` 标准库** (推荐方法,更灵活):
```cpp
#include <iostream>
#include <random>
int main() {
// 创建一个随机数引擎,常常使用 std::default_random_engine
std::default_random_engine generator;
// 选择一个分布器,如 std::uniform_int_distribution
std::uniform_int_distribution<int> distribution(0, 99); // 生成0到99之间的整数
// 从分布器获取随机数
int random_number = distribution(generator);
std::cout << "Random number: " << random_number << std::endl;
return 0;
}
```
这里创建了一个均匀分布,你可以根据需要调整范围和分布类型。
阅读全文