【c++】c++11中生成随机数

来源:互联网 发布:淘宝展现词怎么刷 编辑:程序博客网 时间:2024/05/21 11:08

在c++11中,一个随机数的产生需要由随机引擎(engine)对象和分布(distribution)对象两部分共同完成。其中,对象负责随机数的取值范围和分布。比如,使用uniform_int_distribution分布,表示将引擎产生的随机数字平均分布在某个范围内;而使用normal_distribution分布,则表示将这些随机数字正态分布在某个范围。相应地,引擎对象则负责根据分布对象确定的取值范围和分布产生相应的随机数字。当我们在程序中确定随机数产生所需要的引擎对象和分布对象后,就可以用引擎对象作为参数,调用 分布对象这个函数对象,从而得到我们所需要的随机数了。例如,网站登录验证码的产生就需要用到随机数:

#include <random>#include <iostream>using namespace std;int main() {    default_random_engine reng;    uniform_int_distribution<int> uni_dist(0, 25);    random_device rnd_device;    reng.seed(rnd_device());    const int n = 4;    char code[n];    cout << "请输入验证码" << endl;    for (int i = 0; i < n; i++) {        code[i] = 'A' + uni_dist(reng);        cout << code[i];    }    system("pause");    return 0;}
0 0
原创粉丝点击