C++随机生成1到100随机数 真随机
时间: 2024-09-11 09:00:37 浏览: 46
在C++中,生成随机数通常使用`<random>`头文件中的函数和类。为了得到“真随机”数,通常需要依赖于硬件随机数生成器。但在大多数情况下,我们使用的是伪随机数生成器(Pseudo-Random Number Generators,PRNG),这些生成器通过算法产生看似随机的数列,但实际上每个数列都是可预测的。如果你需要“真随机”的数,可以使用如操作系统的随机数服务等。
下面是一个使用C++标准库中的伪随机数生成器(基于线性同余生成器的算法)生成1到100之间随机数的示例代码:
```cpp
#include <iostream>
#include <random>
#include <chrono>
int main() {
// 使用当前时间作为随机数生成器的种子
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator(seed);
// 定义1到100的范围
std::uniform_int_distribution<int> distribution(1, 100);
// 生成随机数
int random_number = distribution(generator);
std::cout << "随机数(1到100): " << random_number << std::endl;
return 0;
}
```
如果你需要使用“真随机”的数,你可以考虑使用如`/dev/random`或`/dev/urandom`在类Unix系统上的系统级随机数生成器,或者在Windows系统上使用`CryptGenRandom`等服务。但请注意,这些方法通常不适用于标准C++库中的函数,可能需要操作系统级别的调用。
阅读全文