首页 > 编程语言 >c++生成随机数

c++生成随机数

时间:2024-02-05 13:00:14浏览次数:26  
标签:mt19937 int c++ 生成 zgen 64 随机数 zseed

产生随机数的叫随机数生发器


生成随机数


const unsigned zseed=time(0);


void solve()
{
	//随机数生发器
	mt19937_64 m{zseed};
	//种子
	rep(i,1,5)
	cout<<m()<<endl;
	return;
}

重排序列


const unsigned zseed=time(0);
mt19937_64 zgen{zseed};

void solve()
{
	vector<int>a={1,2,3,4,5,6};
	shuffle(begin(a),end(a),zgen);
	for(auto i:a)	cout<<i<<' ';
	cout<<endl;
	return;
}

产生范围内均匀分布的整数随机数


const unsigned zseed=time(0);
mt19937_64 zgen{zseed};

struct UI{
	//随机数的分布器
	//产生随机数的区间是[a,b]
	uniform_int_distribution<int>u;	
	//随机数的生发器
	mt19937_64& gen{zgen};
	int get()
	{
		return u(gen);
	}
	UI(int a=0,int b=1):u(a,b){};
};

void solve()
{
	UI u{-2,2};
	rep(i,1,5)	cout<<u.get()<<endl;
	return;
}

产生范围内均匀分布的小数


左闭右开$ [ ) $


const unsigned zseed=time(0);
mt19937_64 zgen{zseed};

struct UD{
	uniform_real_distribution<db>u;
	mt19937_64& gen{zgen};
	db get()
	{
		return u(gen);
	}
	UD(db a=0,db b=1)	:u{a,b}{}	
};

标签:mt19937,int,c++,生成,zgen,64,随机数,zseed
From: https://www.cnblogs.com/cxy8/p/18007745

相关文章

  • 踩坑了,MySQL数据库生成大量奇怪的大文件
    作者:田逸(formyz)一大早就收到某个数据库服务器磁盘满的报警信息,其中数据盘使用率超过90%,如下图所示。这是一台刚上线不久的MySQL从库服务器,数据盘的总容量是300G。先登录系统,查看主从同步是否正常,幸运的是主从同步正常;再看看磁盘空间的使用情况,执行的命令及输出如下。df-h[root@MyS......
  • 从C向C++8——多态
    一.多态基础面向对象程序设计语言有封装、继承和多态三种机制,这三种机制能够有效提高程序的可读性、可扩充性和可重用性。“多态(polymorphism)”指的是同一名字的事物可以完成不同的功能。多态可以分为编译时的多态和运行时的多态。前者主要是指函数的重载(包括运算符的重载)、对重载......
  • c++11的左值 右值的笔记
    在C++11的程序中,所有的值必须属于左值,将亡值,纯右值之一。将忘值则是c++11新增的跟右值引用相关的表达式,这样表达式通常是将要被移动的对象(以为他用),比如返回右值引用T&&的函数返回值,std::move的返回值,或者转换为T&&的类型的转换函数的返回值。而剩余的,可以标识函数、对象的值都属......
  • vue的scoped中的class data-v-xxx生成规则为什么是按照文件的路径?
    Vue.js中,当在单文件组件(.vue文件)的<style>标签上使用scoped属性时,VueLoader会为组件中的CSS添加一个唯一的属性选择器,以确保样式只作用于当前组件内的元素。这个独特的属性通常格式为data-v-xxx,其中xxx是一个根据文件内容和路径生成的哈希值。生成规则基于文件内容和......
  • C++类和对象
    1.类和对象1.1声明类classPerson{private:stringname;intage;};1.2作为类实例的对象1.3使用句点运算符访问成员1.4使用指针运算符(->)访问成员2.关键字public与private3.构造函数3.1构造函数重载3.2默认构造函数:只要不需要......
  • C++CLI 析构函数和终结器理解
    测试类:#pragmaoncerefclassHello{public:Hello();~Hello();!Hello();};/***************/#include"Hello.h"Hello::Hello(){System::Console::WriteLine("构造函数!");}Hello::~Hello(){System::Console::WriteLi......
  • C++ Primer 学习笔记 PartI C++基础
    Ch1开始略这一章包含控制流,条件,循环,注释,标准IO等内容。对于C语言/ACMC+STL中常见数值的内容不再赘述,仅总结较为不熟悉的内容。PartIC++基础CH2变量和基本类型2.1基本内置类型2.1.1算术类型2.1.1类型转换向unsigned赋超出范围的值,结果取余,对于signed,结果未定义。......
  • C++中promise和future初认识
    future/promisefuture提供了一个基于数据(future模板类型)的异步概念:对于一个类型T,可以在以后通过get接口获得这个类型T的变量。或者打个不太恰当的比方,当你获得一个future对象时,就获得了一个消费券(consumer):拿着这张券可以兑换(get)一个T类型的结果(如果数据未就绪的话会阻塞等......
  • 【SSL协议】生成SSL证书
    目录生成SSL证书keytool相关指令说明服务器端SSL证书签发第一步:创建几个目录来保存证书第二步:生成server.keystore.jks文件(生成服务端的keystore文件)第三步:生成CA认证证书(ca-cert、ca-key)第四步:通过CA证书创建一个客户端信任证书(client.truststore.jks)第五步:通过CA证书创建一个服......
  • 2024年生成式AI芯片市场规模将达500亿美元
    1月24日,德勤发布《2024科技、传媒和电信行业预测》中文版报告,2024年是科技、传媒和电信行业关键的一年,不少科技公司正利用生成式AI升级软件和服务,预计今年全球生成式人工智能芯片销售额可能达到500亿美元以上。 2024年将有许多软件公司在产品中嵌入生成式AI,有些企业的产品将......