【文件属性】:
文件名称:randomizer.zip
文件大小:4KB
文件格式:ZIP
更新时间:2012-03-16 21:31:11
random generator randomizer 随机数
基于32位的C++代码随机数生成器
说明:
c++/c标准库/中定义了随机数生成函数
int rand(void):每次调用返回【0,RAND_MAX】之间的整数;
void srand(unsigned seed):设置随机数种子
库函数当然有高效,易用等优点,但是rand()使用的是【0,2^16-1】16位线性同于算法,周期比较短(2^16),如果随机数周期要求不高 rand()还是很不错的。要在32位机上产生质量和周期比较好的随机数,例如进行蒙特卡罗模拟,需用Schrage算法。
本代码主要将常用的几种随机数算法以C++语言封装,例如线性同于法,Fabbona数列法,在保证效率的前提下,方便调用,并且留有一定的可扩展性。
这是第二次写的代码,相比之前:
基本重组组了以前的代码 ,与以前很不一样。
1.添加几种生成方法。并引入1,2,3模式,可以在易用和速度上选择合适的方法。
2.各种方法之间使用了更清晰的继承关系,使之具有更好的可扩展性。
3.去掉了以前参数的全局设定,使每一个生成器具有独立的内置参数。
4.采用新的重载运算符方法,方便调用。
object() 生成0-1的浮点随机数
object(x) 生成0-x的浮点随机数
object[n] 随机生成0,1,2,3..........,n-1 之间整数。
注意程序还是基于32位的。
其他具体细节也不想写了,源代码里有些说明,并且有一个示例文件。程序并没有很严格的检查,里面也会有写问题,使用时要注意。
【文件预览】:
how_to_use.cpp
rand.h