首页 > 编程语言 >C++ (伪)随机数生成

C++ (伪)随机数生成

时间:2023-02-16 17:35:32浏览次数:32  
标签:std rr int random C++ 生成 rd 随机数

#include <iostream>
#include <random>

namespace random
{
    // 从系统获取随机数作为种子
    std::random_device rd;
    // 创建种子序列
    std::seed_seq rr{rd(), rd(), rd(), rd(), rd(), rd(), rd(), rd()};
    // 使用种子序列创建mt19937伪随机数
    std::mt19937 mt{rr};

    // 接受外部参数设置伪随机数的范围
    int get(int min, int max)
    {
        std::uniform_int_distribution die{min, max};
        return die(mt);
    }

}

int main()
{
    // 测试
    for (size_t i = 1; i <= 40; i++)
    {
        std::cout << random::get(1, 6) << '\t';

        if (i % 5 == 0)
        {
            std::cout << '\n';
        }
    }

    return 0;
}

打印预览:

5       5       2       4       4
1       3       4       1       3
2       1       3       3       5
1       4       1       5       1
3       6       5       3       3
6       3       2       3       3
5       6       2       4       3
1       4       2       6       6

标签:std,rr,int,random,C++,生成,rd,随机数
From: https://www.cnblogs.com/leafz/p/17127526.html

相关文章

  • 关于c++内存优化的方法
    1.使用智能指针shared_ptr<>或者unique_ptr<>此种方法new出来的对象的内存会在超出作用域后自动释放2.使用clear清除列表或者swap清空对象 或者将指针赋值为NULL3.r......
  • 两次循环搞定一维数组到多位数组的转换(菜单树生成)
    原数组:constarr=[{id:1,title:'第一层1000',parentId:0},{id:2,title:'第一层2000',parentId:0},{id:3,title:'第二层1100',parentId:1......
  • jks生成密钥证书及其与x509 pem的转换
    jks创建: #!/bin/bash#Step1keytool-keystoreserver.keystore.jks-aliaslocalhost-validity365-keyalgRSA-genkey-storepasspasswd1#Step2opensslgen......
  • 12.4程序生成随机数的方法
       随机数色子是用来产生随机数的一种工具,每个色子有20面。晃动随机数色子后,出现在正面的数字就是随机数。由于计算机没法去晃动随机数色子,因此程序一般会通过生成类......
  • C++梳理
    1、基础篇1、C++中的四种智能指针为什么要使⽤智能指针:智能指针其作⽤是管理⼀个指针,避免程序员申请的空间在函数结束时忘记释放,造成内存泄漏这种情况的发⽣。使⽤智能......
  • 雪花算法 生成不重复条码
    packagecom.pw.shop.utils;importjava.util.HashSet;importjava.util.Set;/***条码生成器*/publicclassBarcodeGeneratorUtil{//分布式、高性能、......
  • python读取json 生成Excel表格
    importjsonimportxlwtbiaotou='[{"name_cn":"企业名称","name_en":"QYMC"},{"name_cn":"类别","name_en":"LB"},{"name_cn":"地市","name_en":"DS&q......
  • C++ 浮点数比较代码
    #include<algorithm>#include<cmath>#include<iostream>//如果a和b之间的差异在a和b中较大者的epsilon百分比以内,则返回trueboolapproximatelyEqualR......
  • 编译和运行一个C++程序
    由C++编写的源代码需要经过编译和链接后,将其转化为可执行程序后才能运行.在C语言中,使用gcc命令来编译和链接C程序gccmain.c//编译单个源文件gccmain.cmodule.......
  • C++引用
    引用reference举例如:intref=&a;只是产生了一个a的别名,ref并不一个真正的变量。可以用在形参上,代替指针,使得代码更加简洁。voidadd(int*value),等效于void......