我什么时候使用 std::random_device
When do I use std::random_device?
根据标准,std::random_device
的工作方式如下:
有
result_type operator()();
返回:一个非确定性的随机值,均匀分布在
min()
和max()
之间,包括。它是实现定义的 这些值是如何生成的。
几种方法可以使用它。要为引擎设定种子:
std::mt19937 eng(std::random_device{}());
作为引擎本身:
std::uniform_int_distribution<> uid(1, 10);
std::cout << dist(dev);
因为它是实现定义的,所以听起来不像std::seed_seq
或srand(time(nullptr))
那么强大。我更喜欢把它用作种子、发动机还是根本不使用它?
一般来说,std::random_device
应该是您可以在平台上访问的最真实的随机信息的来源。话虽如此,访问它比std::mt19937
或其他方法慢得多。
正确的行为是使用 std::random_device
播种类似 std::mt19937
的东西。
相关文章:
- <random>在实践中应该实际使用哪个随机数引擎? std::mt19937?
- 是否可以为boost::random::uniform_int_distribution<>设置确定性种子?
- 'generate'不是窗口头文件中'std::random_device'的成员<random>
- 数组打印"random"值时出现问题
- 将 aws-iot-device-sdk-cpp-v2 与 CMake 结合使用
- 使用""的不可重现的随机数<random>
- <random> 尽管不是常量,但所有发行版都是线程安全的吗?
- 加载安全区图像"A device attached to the system is not functioning"
- 从时间生成'random'数字?
- CMake + CUDA "invalid device function"即使使用正确的 SM 版本
- 无法在 c++ 中包含"random"头文件
- Nemiver 找不到文件 /build/glibc-LK5gWL/glibc-2.23/stdlib/random.c
- 如何在 c++ 中正确读取 GRC 块"Random Source"的字节输出数据到自己的 OOT 块中?
- 如何从C++<random>获得一致的行为
- 为什么 random() 在窗口中不起作用
- 等效于C++中的numpy.random.choice函数
- Arduino 的新手。 "Random"值在复位时重复
- 在 c++ 中反转数组时,为什么在输入和输出之间得到一个"random"数字?
- 如何使用<random>填充标准::数组
- C++ API 中的张量流加载模型并得到"from device: CUDA_ERROR_OUT_OF_MEMORY"错误