c++ - 在 C++ 中生成随机数的最佳方法是什么?

标签 c++ random numbers

生成随机数的最佳方法是什么?

最佳答案

您应该使用 <random> :

#include <random>

typedef std::mt19937 rng_type;
std::uniform_int_distribution<rng_type::result_type> udist(0, 7);

rng_type rng;

int main()
{
  // seed rng first:
  rng_type::result_type const seedval = get_seed(); // get this from somewhere
  rng.seed(seedval);

  rng_type::result_type random_number = udist(rng);

  return random_number;
}

在 C++11 之前,您可以在 TR1(<tr1/random>std::tr1::mt19937 等)或 Boost.random 中找到它,它们的界面基本相同(尽管存在细微差别)。

关于c++ - 在 C++ 中生成随机数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9471604/

相关文章:

c++ - 帮助 C++ 中的字符输入和打印

c++ - 无框架 Qt 窗口 (win32) 中错误的窗口绘制行为

c++ - 为什么 s.find 在失败时返回 string::npos 而不是 s.length()

haskell - 浮点 RNG 是否应该在 0 附近更精确?

random - CURAND 使用相同的种子生成不同的随机数

android - 在 oncreate 方法之外生成一个随机数

java - 如果用户输入不是字符串,如何引发异常?

c++ - double 和算术

c++ - QFile/QDataStream 写入现有数据

ruby - 我如何在 Ruby 中始终向下舍入数字?