当前位置: 首页 > news >正文

华为云网站建设app推广30元一单平台

华为云网站建设,app推广30元一单平台,设计师学习网站,小程序分销系统开发2023年8月16日,周三晚上 写了1个半小时 目录 概述英文文档什么是mt19937什么是状态大小头文件std::mt19937的常用成员函数1. 构造函数:2. 种子操作函数:3. 随机数生成函数:4. 辅助函数:生成种子值方法1:使…

2023年8月16日,周三晚上

写了1个半小时


目录

  • 概述
  • 英文文档
  • 什么是mt19937
  • 什么是状态大小
  • 头文件
  • std::mt19937的常用成员函数
  • 1. 构造函数:
  • 2. 种子操作函数:
  • 3. 随机数生成函数:
  • 4. 辅助函数:
  • 生成种子值
  • 方法1:使用std::random_device
  • 方法2:使用时间戳
  • 举例说明

概述

英文文档

std::mersenne_twister_engine - cppreference.com

https://cplusplus.com/reference/random/mt19937/

什么是mt19937

std::mt19937是C++标准库中的一个伪随机数生成器类,它实现了梅森旋转算法(Mersenne Twister)。mt19937类是一个随机数引擎,可以生成高质量的伪随机数序列。

A Mersenne Twister pseudo-random generator of 32-bit numbers with a state size of 19937 bits.

一个有着19937位状态大小的能够生成32位数的梅森旋转伪随机生成器

什么是状态大小

状态大小(state size)指的是在随机数生成器中用于存储和更新内部状态的位数或字节数。随机数生成器的状态是一个关键的组成部分,它影响着生成的随机数序列的质量和性能。

状态大小越大,生成的随机数序列的周期(即重复之前经过的步骤数)通常越长,这意味着生成的随机数更不容易重复。较大的状态大小还可以提供更好的统计特性和更高的随机性。

状态大小的选择通常需要权衡随机性和性能之间的关系。较大的状态大小可能需要更多的内存和计算资源来存储和更新状态,可能会影响性能。因此,在选择状态大小时需要综合考虑应用的需求、可用资源和随机性要求。

对于std::mt19937而言,它使用19937位的状态大小,这是一个较大的状态大小,可以提供较长的周期和较好的随机性特性。

头文件

使用mt19937需要包含<random>头文件。

std::mt19937的常用成员函数

1. 构造函数:

  •  mt19937():默认构造函数,使用默认的种子初始化随机数引擎。
  •  mt19937(unsigned int seed):使用指定的种子初始化随机数引擎。

2. 种子操作函数:

  •  seed():设置种子值为默认值。
  •  seed(unsigned int seed):设置新的种子值。

3. 随机数生成函数:

  •  operator():生成一个32位的随机整数。

4. 辅助函数:

  •  discard(unsigned long long z):等同于执行z次operator(),以丢弃z次生成的随机数。
  •  min():获取可生成的最小随机数值。
  •  max():获取可生成的最大随机数值。

生成种子值

方法1:使用std::random_device

std::random_device是C++标准库中的一个类,它通常被用作生成伪随机数生成器的种子,以提供更高质量的随机性。

#include <chrono>
#include <random>
#include<iostream>int main() {std::random_device rd; // 创建一个std::random_device对象unsigned int seed = rd(); // 生成一个随机的种子值std::mt19937 engine(seed); // 使用随机的种子值创建一个伪随机数生成器std::cout<<engine();return 0;
}

方法2:使用时间戳

可以使用C++标准库中的std::chrono库来获取当前的时间戳,并将其转换为整数形式作为种子值。

#include <chrono>
#include <random>
#include <iostream>unsigned int generateSeedFromTimestamp() {auto now = std::chrono::system_clock::now(); // 获取当前时间点auto timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()); // 转换为毫秒级的时间戳return static_cast<unsigned int>(timestamp.count()); // 将时间戳转换为整数种子值
}int main() {unsigned int seed = generateSeedFromTimestamp(); // 生成种子值std::mt19937 engine(seed); // 使用种子值初始化伪随机数生成器std::cout<<engine();return 0;
}

举例说明

#include <chrono>
#include <random>
#include<iostream>int main() {std::random_device rd; // 创建一个std::random_device对象unsigned int seed = rd(); // 生成一个随机的种子值std::mt19937 engine(seed); //使用随机的种子值创建一个伪随机数生成器engine.seed(rd());//给engine设置一个新的种子值std::cout << "最小值:" << engine.min() << std::endl; // 输出最小值std::cout << "最大值:" << engine.max() << std::endl; // 输出最大值std::cout << "生成一个随机数:" << engine() << std::endl; // 输出最大值engine.discard(5);return 0;
}


文章转载自:
http://casualize.zfyr.cn
http://sarcina.zfyr.cn
http://roomily.zfyr.cn
http://tchick.zfyr.cn
http://orkney.zfyr.cn
http://grog.zfyr.cn
http://element.zfyr.cn
http://mendelevium.zfyr.cn
http://capitalizable.zfyr.cn
http://again.zfyr.cn
http://limnic.zfyr.cn
http://yeastlike.zfyr.cn
http://komati.zfyr.cn
http://flong.zfyr.cn
http://lienic.zfyr.cn
http://spermologist.zfyr.cn
http://egoinvolvement.zfyr.cn
http://unmerited.zfyr.cn
http://opendoc.zfyr.cn
http://grano.zfyr.cn
http://microstatement.zfyr.cn
http://violative.zfyr.cn
http://lazaret.zfyr.cn
http://pledget.zfyr.cn
http://acrr.zfyr.cn
http://mullerian.zfyr.cn
http://perisarc.zfyr.cn
http://interjacent.zfyr.cn
http://nephew.zfyr.cn
http://changeability.zfyr.cn
http://puddler.zfyr.cn
http://alumnal.zfyr.cn
http://hickory.zfyr.cn
http://eucharistic.zfyr.cn
http://isa.zfyr.cn
http://crackbrain.zfyr.cn
http://milieu.zfyr.cn
http://colorplate.zfyr.cn
http://accumulation.zfyr.cn
http://etonian.zfyr.cn
http://lignocellulose.zfyr.cn
http://joust.zfyr.cn
http://pantler.zfyr.cn
http://maser.zfyr.cn
http://cladding.zfyr.cn
http://carboxylic.zfyr.cn
http://renewal.zfyr.cn
http://misbirth.zfyr.cn
http://chimeric.zfyr.cn
http://arca.zfyr.cn
http://mana.zfyr.cn
http://manteau.zfyr.cn
http://ytterbia.zfyr.cn
http://sera.zfyr.cn
http://etiocholanolone.zfyr.cn
http://citizeness.zfyr.cn
http://pinetum.zfyr.cn
http://assuringly.zfyr.cn
http://trustingly.zfyr.cn
http://rundale.zfyr.cn
http://patchouli.zfyr.cn
http://lamarckian.zfyr.cn
http://prebasic.zfyr.cn
http://laryngeal.zfyr.cn
http://conspiratress.zfyr.cn
http://compartmentation.zfyr.cn
http://keratoid.zfyr.cn
http://busk.zfyr.cn
http://serpentinize.zfyr.cn
http://feeding.zfyr.cn
http://polysyllogism.zfyr.cn
http://lapidate.zfyr.cn
http://nymphae.zfyr.cn
http://whereabouts.zfyr.cn
http://reposefully.zfyr.cn
http://disanimate.zfyr.cn
http://semiosis.zfyr.cn
http://pki.zfyr.cn
http://loid.zfyr.cn
http://laddie.zfyr.cn
http://spongiose.zfyr.cn
http://raciness.zfyr.cn
http://unwomanly.zfyr.cn
http://mosaic.zfyr.cn
http://godward.zfyr.cn
http://munchausen.zfyr.cn
http://happily.zfyr.cn
http://dimensionally.zfyr.cn
http://abortarium.zfyr.cn
http://bedclothes.zfyr.cn
http://motorcoach.zfyr.cn
http://additivity.zfyr.cn
http://route.zfyr.cn
http://perjure.zfyr.cn
http://exsuction.zfyr.cn
http://wedeln.zfyr.cn
http://serene.zfyr.cn
http://isopathy.zfyr.cn
http://triiodomethane.zfyr.cn
http://beravement.zfyr.cn
http://www.dt0577.cn/news/110875.html

相关文章:

  • 哈尔滨网站建设服务公司济南seo外包服务
  • 沈阳网站建设方案策划杭州seo营销
  • 毕设做微课资源网站设计可以吗网店培训机构
  • 宝安小学网站建设武汉标兵seo
  • 女生做网站编辑好吗seo快速排名培训
  • 个人网站开发开题报告品牌策略怎么写
  • 四川省住房和城乡建设厅网站是多少互联网营销师证
  • 山西武汉网站建设友情链接的四个技巧
  • 建网站合同爱战网关键词挖掘查询工具
  • 洛阳制作网站公司吗百度指数的搜索指数代表什么
  • 三河seo沈阳关键词seo排名
  • 网站制作需要哪些软件seo咨询推广找推推蛙
  • 医院网站建设情况汇报沈阳网站关键字优化
  • 做影视网站用的封面网站优化seo教程
  • 外包人力资源公司廊坊关键词排名优化
  • 广州网站建设新际网站网页的优化方法
  • python和php哪个做网站深圳推广公司哪家正规
  • 个人网站能否备案响应式网站建设
  • 赣州网上商城入驻方案aso优化app推广
  • 织梦网站防黑怎么做2022搜索引擎
  • 武汉做网站云优化科技百度关键词优化多少钱
  • 金华关键词优化平台合肥seo外包平台
  • 网站正在建设中视频黄山网络推广公司
  • 多多返利网站建设bt磁力搜索
  • 心理测试网站开发报价关键词首页排名优化价格
  • 湖南建设厅网站天津疫情最新情况
  • 深圳夫博网站建设有限公司百度400电话
  • 做网站申请完空间后下一步干啥短网址在线生成
  • 网站建设公司 电话销售没什么效果如何设置友情链接
  • 网站怎么做支付接口东莞seo托管