C++不用ctime生成随机数
时间: 2024-05-06 17:18:13 浏览: 8
可以使用C++11中的`<random>`头文件中的随机数生成器来生成随机数,这种方法比使用`ctime`更为安全和高效。以下是一个例子:
```c++
#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`是一个随机数生成器,使用Mersenne Twister算法生成随机数。`std::uniform_int_distribution`是一个分布,它将随机数分布在指定的范围内。
这个例子中,我们使用`std::uniform_int_distribution`生成一个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;
}
```
需要注意的是,为了让每次生成的随机数都不同,需要在程序开始时设置随机数种子。上面的代码中,使用了当前时间作为种子,保证每次运行程序时都会生成不同的随机数。