伪均匀随机数的计算机检验
下载后可任意编辑 伪均匀随机数的计算机检验 摘要 现代社会中,计算机能力的提高使得随机数发生器在众多领域中有了较为广泛的应用,如蒙特卡罗方法,统计抽样技术和密码学等。同时关于随机数发生器也产生了很多的理论和方法,本文将简单介绍一些常见的伪均匀随机数发生器线性同余发生器(LCG方法)和反馈位移寄存器法(FSR方法)。然后对伪均匀随机数序列进行统计检验。主要检验方法有参数检验(包括均值、方差或各阶距)、均匀性检验(包括卡方、柯氏和序列检验)、独立性检验(包括相关系数、列联表和游程检验)。最后,本文将利用Matlab生成一列随机数,并运用SPSS统计软件对此列随机数的统计特性择其适合的方法进行检验。 关键词伪随机数;随机数发生器;统计检验;SPSS统计分析 下载后可任意编辑 Abstract In modern society, the improvement of computer capabilities make random number generator widely used in many areas, such as the Monte Carlo , statistical sampling techniques and cryptography. At the same time there are a lot of theories and s on the random number generator, I will introduce some of the common random number generators briefly in this article linear congruential generator LCG and feedback shift register FSR . Then I will do statistical tests with the sequence of random numbers . Main s are parameter test involving the mean, variance, or the order from ,the test of homogeneity involving Chi-square, Coriolis and sequence test, test for independence involving the correlation coefficient, contingency table and the runs test. Finally ,this paper will use the Matlab generate a sequence of random numbers, use SPSS and select the appropriate test s to test statistical properties of the sequence of random numbers. Key words random number, random number generator, statistical test,SPSS statistical analysis 下载后可任意编辑 下载后可任意编辑 目录 摘要I AbstractII 一、引言1 1基本概念和定理1 2 伪随机数2 二、产生随机数的一般方法3 2.1 取中法3 2.1.1 平方取中法3 2.1.2乘积取中法3 2.2 同余发生器3 2.2.1混合同余法4 2.2.2乘同余法4 2.2.3加同余法4 2.3反馈位移寄存器法4 三、伪均匀随机数的统计检验6 3.1 检验步骤6 3.2 检验统计量6 3.3 统计检验方法7 3.3.1参数检验7 3.3.2均匀性检验8 3.3.3独立性检验10 3.3.4其他经验检验12 四、实例分析13 4.1 数据产生及录入13 4.2 参数检验-单样本t检验13 4.3均匀性检验-卡方检验14 4.4独立性检验16 4.5本章小结18 五、结论19 参考文献20 附录21 一、引言 在科学讨论和工程设计中广泛应用到计算机模拟方法,从而常常需要产生大量的具有特定统计性质的随机数。这种随机数通常是由计算机以某种数学方法产生,他们实质上是完全确定的,但可以满足一定的统计特征,故也称为伪随机数。而如何产生达到统计要求的随机数,则有不同的方法硬件方法和软件方法。硬件方法可以在计算机上附上一个硬件设备或者采纳移位寄存器来产生伪随机数;软件方法一般都采纳数学公式法。 至今关于随机数发生器有很多的理论和方法,其中除了传统的Fibonacci法、平方取中法、线性同余法、位移寄存器法和组合方法外,最近还有非线性同余法、取小数法、进位加和错位减法、广义反馈位移寄存器法等等。尽管这个领域己经有很多的理论讨论,但是仍存在很多的实际问题,甚至最近提出的随机数发生器也有一些缺点。 近年来在计算机中,比较广泛使用的方法就是同余法,而在高级程序设计语言中常采纳线性同余法。每次生成的伪随机数需要满足独立的条件及给定分布函数的要求,但高级程序设计语言中提供的库函数产生的伪随机数都是满足一定条件的均匀分布随机数,且在同一次程序运行中,每次产生的伪随机数是完全相同的。 通过在微机上对用乘同余法和混合同余法产生的随机数进行大量的试验, 发现通过适当选择算法中的各常量, 用这两种方法产生的随机数,其分布特性一般容易通过统计捡验。 用随机模拟方法解决实际问题时,首先要清楚随机数的产生方法,或者说是随机变量的抽样方法。 1基本概念和定理 定义1 设随机变量,则称随机变量随机抽样序列为分布的随机数。 若,则称来自的随机抽样序列为正态分布随机数;若服从指数分布,则称为指数分布的随机数;若区间均匀分布,则称为区间上的均匀分布随机数。 定理1 设是连续且严格单调上升的分布函数,它的反函数存在,且记为即。 若随机变量的分布函数为,则。 若随机变量,则的分布函数为。 推论 已知,设是一个分布函数,且反函数存在,则。 定理2设服从二点分布相互独立,且 令 (用二进制表示) 则 定义2准均匀分布 设离散随机变量的概率密度为 则称为准均匀分布,且。 2 伪随机数 显然,用计算机只能产生准均匀随机分布数,但是当很大时,和均匀随机变量的统计性质差异很小,可以把准均匀随机数做伪均匀随机数。 二、产生随机数的一般方法 2.1 取中法 2.1.1 平方取中法 平方取中法又称自然取中法,首