蒙特卡洛模拟中伪随机数的STTDMR检验帅永,夏新林,谈和平,阮立明(哈尔滨工业大学航天热物理研究所,黑龙江哈尔滨150001)[摘要]伪随机数发生器(PNG)是蒙特卡洛法概率模拟中的基本工具,但它也成为影响蒙特卡洛法精确度的最大误差源.提出了一种检验方法———二维介质辐射对称性检验法STTDMR,它可在不同条件下对各种伪随机数程序进行无限制的检验,在更精细的层次上区分伪随机数发生器的优劣.STTDMR不仅可检验伪随机数的特性,还可检验概率模型是否正确.利用STTDMR分析了多种典型的伪随机数产生法,获得一个性能上较优越的组合伪随机数ZH产生程序.[关键词]蒙特卡洛法;伪随机数;检验;STTDMR[]TK124[文献标识码]A引言最近几年蒙特卡洛法应用范围日益扩大,原先只能在大型机上运行的许多蒙特卡洛计算程序正在微机.用蒙特卡洛法对一个实际过程进行计算机模拟,必须产生具有各种分布的伪随机数来模拟系统中的0化1,2随机过程.因此可以说,伪随机数发生器是蒙特卡洛法概率模拟中的基本工具3~6.就数学上来说,只要有了一种分布规律的伪随机数,就可以通过各种数学变换或抽样的方法,产生出具有任意分布的随机数.实际上,在计算机上总是先产生最简单的0,1区间均匀分布随机数,然后再用它产生出所需的各种分布的随机数.产生伪随机数的方法有多种,如平方取中法、乘同余法、混合同余法、Fibonecci法、小数平方法、小数开方法、混沌法、取余法等.这些方法各有优缺点7,很难获得一种完美的随机数产生方法.一个好的随机数产生方法应具有以下特点:①所产生的随机数序列应均匀分布在0,1区间,有好的分布状态;②序列之间应没有相关性,互相独立,充分体现任意性;③序列重复周期足够长、具有完全可重复性;④在计算机上产生的速度快、占用的内存空间少.几年来,随着计算机技术的发展,其运算速度得到了迅速的提高,目前影响蒙特卡洛法精确度的最大误差源在于伪随机数的计算.对随机数的检验可以分为理论检验和经验检验两大类8.理论检验是产生随机数之前预测该随机数的性能,是对随机数总体的检验,不能保证从总体中抽取的一个具体样本的随机性能.经验检验是直接对实际产生出的随机数样本进行统计检验,可采用概率统计理论中的统计检验方法.伪随机数检验分析有很多种方法1,从数学上的各种重要分布及抽样分析的检验到粒子输运问题中的分布及抽样的检验,本文提出一种检验方法———二维介质辐射对称性检验法(STTDMR,symmetrytestintwodi2mensionmediaradiation).STTDMR不仅可以检验伪随机数的特性,并且由于该方法中涉及发射模型、反射模型、介质吸收散射模型,因此还可以检验蒙特卡洛法的概率模型.对于不同的伪随机数程序,若检验结果都与物理现象偏差很大,则可说明蒙特卡洛法的概率模型有问题;后之,则说明所建立的概率模型是正确的.在此基础上,进一步对伪随机数进行比较分析,检验伪随机数的产生方法.1STTDMR检验基本原理本文提出了一种二维介质辐射对称性检验法STTDMR,即:取一个N×N的二维正方形网格,如图1所[收稿日期]2003-01-21;[修回日期]2003-08-14[基金项目]国家自然科学基金(No.50336010)资助项目示,中间是吸收散射性介质,从中心网格(标识符号为ƒ)通过伪随机数程序随机发射辐射能束,而后统计经过一次及多次传递后各网格吸收的能束射线数目.若介质的衰减(吸收、散射)系数均匀,且各壁面的发射率相等,则理论上几何位置对称网格(标识数字符号相同者)吸收的能束数应相等.为简便起见,本文中不考虑散射,则衰减系数等于吸收系数.其中运用辐射传递系数RDij的概念,它表示面元i的本身辐射(本文中用射线数目ni表示)经一次投射,及经系统中其它各元的一次或多次反射后,最终被面元j吸收的份额(吸收的射线数目为nij),图1二维正方形网格Fig11TwoDimensionalQuadrateGrid表1部分伪随机数产生程序所用方法Table1MethodofsomePNGs=nijΠni.RDi,j本文对几种不同方法编制的伪随机数产生程序进行STTDMR检验比较分析,其中ZH程序是利用计算机的物理时间产生一个随机数种子,由该种子再产生若干种子,程序名Rand1Rand2Rand4ZH方法乘同余法混合同余法小数平方法混合法并且按照某种关系将经比较后选择的6个性能较好的伪随机数产生程序组合起来,随机调用其中的...