c++ 随机数
来源:互联网 发布:php jenkins docker 编辑:程序博客网 时间:2024/06/17 19:38
在c++中使用stdlib.h 中的rand()函数输出伪随机数数列。
srand(unsigned int):给rand函数一个种子,使其初始化。一般用srand((unsigned int)time(NULL));,使用当前时间来初始化。
rand();随机数生成函数,可以输出随机数列,在一个种子下共有65535个,则之后会重复出现。位于stdlib.h中。rand_max为0x7fff,但输出时最大值为32765
实现随机数的方法有两种,一种通过一个确定性算法实现的伪随机数生成,一种是选取真实世界的自然随机源来生成的真随机数。
真随机数要需要特别的系统函数或者硬件电路来换取真随机源的信息,如 计算机网络中IP包到达的时间,随机噪音,计算机当前的秒级时钟,键盘反应的时间,热噪声,操作系统的进程信息,光量子的偏振等。真随机数效率较低,一般在程序使用伪随机发生器产生的伪随机数。
常用的伪随机生成方法为线性同余法:
随机数序列{Xn} 由以下式子迭代得到:
Xn+1 = ( a * Xn + c ) mod m , n>= 0
X0为种子,且 0 =< X0 <m ;
常数m为模数,m >0 。
常数a为乘子, 0=<a<m。
参数c为增量, 0=<c<m
一个好的线性同余法的取值使其能产生高质量的随机数。要使其满周期,即使其周期数等于为m。一般选择m=2^l,l为使用数据类型的比特数,如使用int时,为32,这样会使周期很大,且整数溢出,不用进行模操作。然后要使其满周期,则a = 4A +1,b = 2B + 1 , A,B为任意的正整数。X0一般取当前时钟值。
- 【Unity&C#&随机数】随机数
- 【C++】随机数
- c++/c 产生随机数
- C/C++:随机数生成
- [C]如何产生随机数~
- C 语言中的随机数
- C#.net随机数函数
- C语言随机数内幕
- C语言产生随机数
- c的随机数
- 随机数生成c++(转)
- C/C++产生随机数
- c语言随机数
- 随机数生成器C语言
- C 语言随机数函数
- C中的随机数函数
- 【C 笔记】伪随机数
- C#Random 随机数
- ODDR的使用错误
- 浅谈Borg/YARN/Mesos/Torca/Corona一类系统
- 操作系统原理
- RT73(RT2571WF)(TL-WN321G+) USB无线WIFI移植S3C2440+linux2.6.30.4
- Extjs4.2.1 Ext.grid.plugin.RowEditing 保存按钮不可用
- c++ 随机数
- FI--SAP财务成本知识库
- poj1850 Code
- Android APP --- Mr Expense
- iphone开发资源汇总
- rspec BDD(行为驱动开发 敏捷开发模型)的一种插件工具
- #ifdef电脑程序语句,我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。
- Tomcat安装与配置
- Apache Mesos:数据中心就是计算机