c++ - 如何生成伪随机数容易地?

标签 c++ c visual-studio

我正在使用seed和类似 srand() 的功能或random()仅从 0 to 5 生成数字但我需要一种更简单的方法,也可以轻松找到seed通过馈送阵列。请推荐一个

最佳答案

下面是一个简单的示例,它生成 10 个均匀分布的随机数,范围在 -42 到 42 之间:

#include <iostream>
#include <functional>
#include <random>
int main()
{
    std::random_device seed_device;
    std::mt19937 engine(seed_device());
    std::uniform_int_distribution<int> distribution(-42, 42);
    auto rnd = std::bind(distribution, std::ref(engine));
    for (int i = 0; i < 10; ++i) {
        std::cout << "random number: " << rnd() << "\n";
    }
    return 0;
}

另请参阅:

http://en.cppreference.com/w/cpp/header/random

关于c++ - 如何生成伪随机数容易地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45196073/

相关文章:

c - 在 Linux 中关闭(或以其他方式操作)LCD

c - 在 C 中初始化某个结构字段 on-initialization

c++ - 修改 value const 方法

c - C编程中的strstr()函数

C# Visual Studio 单元测试,模拟客户端 IP 地址

c# - 项目 'Projr' 不是最新的。 VS 2017 管理员模式下缺少输出文件 'c:\..\bin\Debug\Projr.dll'

c++ - 如何在 MFC 中启动对话框?

c++ - Linux 和剪贴板

C++ 卡尔曼滤波器库产生 1.#R(NaN) 结果

c++ - 这个c++程序中栈是怎么一步步变化的?