隨机数生成原理实现方法不同编程语言的随机数函数.docVIP

  • 0
  • 0
  • 约2.4万字
  • 约 28页
  • 2017-01-18 发布于重庆
  • 举报

隨机数生成原理实现方法不同编程语言的随机数函数.doc

隨机数生成原理实现方法不同编程语言的随机数函数

1-0:Microsoft VC++产生随机数的原理: Srand ( )和Rand( )函数。它本质上是利用线性同余法,y=ax+b(mod m)。其中a,b,m都是常数。因此rand的产生决定于x,x被称为Seed。Seed需要程序中设定,一般情况下取系统时间作为种子。它产生的随机数之间的相关性很小,取值范围是0—32767(int),即双字节(16位数),若用unsigned int 双字节是65535,四字节是4294967295,一般可以满足要求。 1-1: 线性同余法: 其中M是模数,A是乘数,C是增量,为初始值,当C=0时,称此算法为乘同余法;若C≠0,则称算法为混合同余法,当C取不为零的适当数值时,有一些优点,但优点并不突出,故常取C=0。模M大小是发生器周期长短的主要标志,常见有M为素数,取A为M的原根,则周期T=M-1。例如: a=1220703125 a=32719 (程序中用此组数) a=16807 代码: void main( ) { const int n=100; double a=32719,m=1,f[n+1],g[n],seed; m=pow(2,31); cout设置m值为 m-1endl; cout输入种子endl; //输入种子 cinseed; f[0]=see

文档评论(0)

1亿VIP精品文档

相关文档