伪均匀随机数的计算机检验
- 格式:docx
- 大小:594.68 KB
- 文档页数:24
伪随机数的统计特征伪随机数是计算机科学中的一个重要概念,它是通过确定性算法生成的一组数列,看起来像是随机数,但实际上是可以通过算法预测的。
虽然伪随机数不具备真正的随机性,但在许多应用场景中仍然发挥着重要的作用。
本文将探讨伪随机数的统计特征,包括均匀性、周期性、相关性和可预测性。
我们来讨论伪随机数的均匀性。
均匀性是指伪随机数生成器生成的数列在某个范围内的数字分布是均匀的。
也就是说,每个数字出现的概率应该接近相等。
如果生成的数列在某个范围内的数字分布不均匀,就会导致一些数字出现的频率高于其他数字,从而影响伪随机数的质量。
为了保证均匀性,伪随机数生成器通常会采用一些特定的算法和技巧,比如线性同余法和梅森旋转算法等。
周期性是伪随机数的另一个重要统计特征。
周期性是指伪随机数生成器生成的数列在不重复出现的数字之间的长度。
周期性越长,生成的伪随机数就越能够满足应用的需求。
如果周期性太短,生成的伪随机数将很快开始重复,这就会导致应用中出现重复的情况,从而影响数据的可靠性。
周期性的长度通常取决于伪随机数生成器的算法和种子值的选择。
接下来,我们来讨论伪随机数的相关性。
相关性是指伪随机数生成器生成的数列中相邻数字之间的相关性。
如果相邻数字之间存在较强的相关性,那么生成的伪随机数就会呈现出一定的规律性,从而失去了真正的随机性。
为了保证相关性的随机性,伪随机数生成器通常会采用一些混淆和扰动的技巧,比如使用异或操作和位移操作等。
我们来讨论伪随机数的可预测性。
可预测性是指伪随机数生成器生成的数列是否可以通过已知的信息或算法来预测。
如果伪随机数具有可预测性,那么它就不能被用于一些需要真正随机数的应用,比如密码学和安全性相关的应用。
为了提高伪随机数的可预测性,伪随机数生成器通常会使用一些不可逆的操作,比如哈希函数和加密算法等。
伪随机数的统计特征包括均匀性、周期性、相关性和可预测性。
这些特征决定了伪随机数生成器生成的数列是否具有高质量的伪随机性。
任意概率分布的伪随机数研究和实现介绍:在计算机科学和概率论中,伪随机数是通过一定的算法生成的序列,看上去具有随机性的数值。
这些数值是通过按照其中一种规则变换生成的,并不是真正的随机数。
伪随机数在现代计算机科学中被广泛应用于模拟、密码学、统计等领域。
一、统计模型统计模型是通过使用统计学方法来拟合一定的概率分布,并生成满足该概率分布的伪随机数。
常见的统计模型包括正态分布、均匀分布、泊松分布等。
正态分布可以使用Box-Muller转换方法生成伪随机数。
该方法通过使用两个独立且均匀分布的伪随机数和一些数学变换,生成满足标准正态分布的伪随机数。
进一步,通过线性变换可以生成满足任意均值和标准差的正态分布的伪随机数。
二、逆变换方法逆变换方法是通过随机抽取[0,1]上的均匀分布随机数,然后使用概率密度函数的逆函数来生成满足特定概率分布的伪随机数。
例如,对于指数分布,可以通过使用指数函数的逆函数生成满足指数分布的伪随机数。
具体实现时,可以使用负对数函数实现指数函数的逆函数。
三、接受拒绝方法接受拒绝方法是通过生成一个包围目标概率分布的辅助分布,然后在该辅助分布上生成随机数,然后根据一定的判别条件决定是否接受或拒绝该随机数。
如果接受,则该随机数满足目标概率分布。
一个常用的接受拒绝方法是使用均匀分布作为辅助分布。
具体步骤是先生成两个独立均匀分布的伪随机数x和y,然后计算y在辅助分布上的概率密度函数值,与目标概率分布的概率密度函数值进行比较。
如果y小于目标概率分布的概率密度函数值,则接受x;否则,拒绝x。
总结:以上介绍了任意概率分布的伪随机数生成的几种常见方法,分别基于统计模型、逆变换方法和接受拒绝方法。
这些方法可以根据具体的需求选择合适的途径来生成满足特定概率分布的伪随机数。
然而,虽然伪随机数在应用中具有高效和便捷的特点,但并不适用于安全敏感的场景。
在密码学中,需要使用真正的随机数来确保安全性,例如通过硬件设备生成的真随机数。
伪随机数与准随机数的比较王水花 张煜东 吴乐南(东南大学 信息科学与工程学院,江苏 南京 210096)摘 要传统的随机数生成法主要采用逆转法,首先生成[0, 1]区间上的均匀分布U,然后令X=F-1(U),则X满足分布F。
然而,这样生成的均匀分布具有明显的差异性,在小样本或高维空间的情况下尤其严重。
因此,引进一种新的随机数生成方法,即准随机数生成器。
实验验证了准随机数生成器得到的随机数的差异性优于传统方法。
最后,提出一种基于准随机数生成器的蒙特卡罗积分方法,结果优于传统的蒙特卡罗积分。
关键词伪随机数;准随机数;Kolmogorov- Smirnov假设检验1 引言随机数生成算法[1]是一类重要的算法,广泛应用于仿真技术等场合。
然而,目前的伪随机数生成器(Pseudo-random number generator, PRNG)[2]存在一个重要缺陷,即样本分布与真实分布不一致,这主要发生在以下两种情况:①抽样代价过高,样本数目较少;②空间维数较高[3]。
因此,有必要寻找一类新的随机数发生器。
准随机数发生器(Quasi-random number generator, QRNG)[4]能够生成稳定、低差异性的(low-discrepancy)样本,而与样本数目或空间维数无关[5]。
故针对蒙特卡罗积分结果不稳定的情况,提出一种基于QRNG的蒙特卡罗积分,发现比传统方法性能有所提升。
2 伪随机数介绍伪随机数是由确定的算法生成的,其分布函数与相关性均能通过统计测试。
与真实随机数的差别在于,它们是由算法产生的,而不是一个真实的随机过程。
一般地,伪随机数的生成方法主要有以下3种[6]:(1) 直接法(Direct Method),根据分布函数的物理意义生成。
缺点是仅适用于某些具有特殊分布的随机数,如二项式分布、泊松分布。
(2) 逆转法(Inversion Method),假设U服从[0,1]区间上的均匀分布,令X=F-1(U),则X的累计分布函数(CDF)为F。
基于检验的随机数在线检测方法的实现一、概述随着信息化时代的快速发展,随机数在信息安全、通信、密码学等多个领域扮演着至关重要的角色。
它们被广泛应用于生成密钥、加密解密、身份认证等关键过程,对于保障信息安全具有不可或缺的作用。
随机数的质量直接影响到这些应用的安全性和可靠性,对随机数进行在线检测以确保其质量和随机性成为一项重要任务。
传统的随机数检测方法往往依赖于离线分析,这种方法虽然能够提供较为准确的检测结果,但无法满足实时性和在线性的要求。
开发一种基于检验的随机数在线检测方法具有重要的实际意义。
该方法能够实时地对随机数进行监测和分析,及时发现并处理可能存在的问题,从而确保随机数的质量和随机性。
本文提出了一种基于检验的随机数在线检测方法的实现方案。
该方法首先采集大量的随机数样本,然后利用统计学原理对样本进行卡方检验,以评估随机数的质量和随机性。
针对128bit、256bit和512bit等不同长度的随机数,我们通过推导和优化卡方检验公式,使其更易于硬件实现,从而提高了在线检测的速度和效率。
1. 随机数在各个领域的应用及其重要性随机数在现代社会的各个领域中均扮演着不可或缺的角色,其重要性和应用价值日益凸显。
无论是在科学研究、工程技术、金融投资,还是在信息安全、网络通信、游戏娱乐等领域,随机数都发挥着至关重要的作用。
在科学研究领域,随机数被广泛用于模拟实验、统计分析以及模型构建等方面。
通过生成大量的随机数样本,科学家们能够模拟出各种复杂的自然现象和社会过程,从而揭示其中的规律和机制。
随机数在统计分析中也扮演着重要角色,能够帮助研究者们更准确地评估数据的分布特征、检验假设的合理性以及预测未来的趋势。
在工程技术领域,随机数同样具有广泛的应用。
在通信系统中,随机数可以用于生成加密密钥和随机数序列,保障信息传输的安全性和可靠性。
在图像处理领域,随机数可以用于生成噪声、纹理等效果,增强图像的视觉体验。
在工业自动化、控制系统等领域,随机数也发挥着重要作用,能够提高系统的稳定性和性能。
随机数检测标准随机数在现代计算机科学和信息技术中扮演着至关重要的角色。
正确生成和使用随机数是确保安全、可靠和高效的系统运行的关键因素。
为了确保随机数的质量,随机数检测标准被广泛采用。
本文将探讨随机数检测标准的相关内容。
一、概述随机数是在一定范围内无法预测和重现的数值序列。
在密码学、模拟实验、统计样本选取等领域中,随机数的生成和使用是非常重要的。
然而,由于计算机是基于确定性规则工作的,要生成真正的随机数是相当困难的。
因此,需要通过随机数检测标准来评估随机数的质量。
二、随机性测试1. 统计测试统计测试是最常用的随机性测试方法之一。
通过对生成的随机数进行统计分析,检查其分布是否均匀、频数是否满足期望等。
常用的统计测试包括频率分布测试、质因数分解测试和最长重复子序列测试等。
2. 线性复杂度测试线性复杂度测试旨在检测随机数序列中最长的线性相关性长度。
通过计算随机数序列中的线性复杂度,可以评估其随机性的质量。
典型的线性复杂度测试方法有线性复杂度模型、Baur-Strassen算法等。
3. 拓展测试拓展测试是更为严格和复杂的随机性测试方法。
它包括领域扩展测试和遗传扩展测试两种类型。
领域扩展测试要求随机数在不同的领域中都具有良好的随机性质量,比如一维、二维和高维分布等。
而遗传扩展测试则涉及到多个子序列之间的相互关系,以验证随机数生成算法的随机性。
三、随机性评估标准1. NIST标准NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)提供了一套完整的随机性评估标准,包括统计测试、线性复杂度测试和拓展测试等。
这套标准被广泛应用于软件和硬件随机数生成器的评估与认证。
2. Diehard测试套件Diehard测试套件由George Marsaglia教授开发,包含了15种不同的统计测试,适用于评估随机数序列的质量。
这些测试涵盖了各种统计特性,包括均匀性、独立性、序列关联性等。
伪随机数法什么是伪随机数法伪随机数法(Pseudorandom Number Generation)是一种通过特定的算法生成看似随机的数列的方法。
与真随机数相比,伪随机数是通过计算机算法生成的,因此是可以被预测的。
伪随机数法在计算机科学、密码学、模拟等领域有着广泛的应用。
在计算机中生成随机数是非常重要的,因为计算机的运算是依靠确定性的算法进行的。
如果我们需要生成一个随机的初始状态,或者在模拟实验中需要随机产生一些变量值,就需要使用伪随机数法。
伪随机数法的应用伪随机数法在计算机科学和密码学中有着广泛的应用。
下面将介绍一些常见的应用场景:模拟实验在科学研究中,很多实验是不方便或者不可能进行的,这时可以通过使用伪随机数法进行模拟实验。
伪随机数可以用来模拟现实世界中的随机事件,帮助科学家研究和预测可能的结果。
加密算法在密码学中,加密算法需要使用随机数来增加安全性。
伪随机数法可以生成看起来随机的密钥,使得加密过程更加复杂,增加破解的难度。
游戏开发在游戏开发中,随机数被广泛应用于生成游戏中的随机事件、敌人的行为、地图的生成等等。
通过使用伪随机数法,游戏开发者可以在保证游戏体验的基础上增加游戏的随机性,使得每一次游戏过程都有所不同。
统计分析在统计分析中,随机数被广泛应用于抽样、模拟等计算。
通过使用伪随机数法,可以生成具有一定随机性的样本,从而进行统计推断和模型评估。
伪随机数的生成方法伪随机数的生成方法有多种,下面介绍两种常见的方法:线性同余法和密码学安全伪随机数生成算法。
线性同余法线性同余法是一种简单却常用的伪随机数生成方法。
它通过使用一个线性递推公式生成序列,该公式由三个参数构成:当前随机数、乘法常数和模数。
具体步骤如下:1.选择一个随机的初始种子数作为第一个随机数;2.使用线性递推公式计算下一个随机数:X n+1=(a⋅X n+c) mod m;3.将计算得到的随机数作为下一次计算的输入。
线性同余法的随机性取决于初始种子数的选择和参数的设定,如果参数选择不当或者初始种子数过于接近,就可能导致生成的随机数不够随机。
伪随机数算法随机数是在计算机科学和统计学中广泛应用的一个概念,它是一种无法预测的数值序列。
而伪随机数则是由计算机生成的看似随机的数值序列,但实际上是通过一系列特定的算法计算得出的。
本文将探讨伪随机数算法的原理和应用。
一、伪随机数算法的原理伪随机数算法是基于确定性的计算机算法生成的,其原理可简单描述为:1. 初始化:选择一个初始种子数,通常是当前时间戳。
2. 迭代:使用指定的迭代函数对种子数进行迭代计算,生成新的种子数。
3. 输出:将生成的种子数作为伪随机数输出,并作为下一次迭代的种子数。
伪随机数算法的关键在于迭代函数的设计,好的迭代函数应该具备以下特点:1. 周期性:迭代函数应该具有较长的周期,以确保生成的伪随机数序列不会过早重复。
2. 均匀性:生成的伪随机数应该具有均匀的分布特性,即在一定范围内的数值出现的概率应该相等。
二、伪随机数算法的应用伪随机数算法在计算机科学和统计学中有着广泛的应用,以下是几个常见的应用场景:1. 加密算法:伪随机数算法常用于加密算法中的密钥生成,通过生成高质量的伪随机数作为密钥,可以提高加密算法的安全性。
2. 模拟实验:在科学研究和工程设计中,常常需要进行模拟实验。
伪随机数算法可以生成具有随机性的输入参数,用于模拟实验的数据生成。
3. 游戏开发:伪随机数算法在游戏开发中有着广泛的应用。
通过生成随机的游戏地图、敌人位置、道具掉落等元素,可以增加游戏的可玩性和趣味性。
4. 数值分析:在数值分析领域中,伪随机数算法被广泛用于Monte Carlo方法等数值计算技术中。
通过生成大量的伪随机数,可以近似计算复杂的数学问题。
三、伪随机数算法的局限性虽然伪随机数算法在很多场景下可以达到较好的效果,但也存在一些局限性:1. 预测性:伪随机数算法是基于确定性的计算机算法,因此理论上是可以被预测的。
如果攻击者能够获得足够的伪随机数序列,就有可能推算出算法的种子数和生成规则,从而破解加密算法等。
两种常见的伪随机数算法伪随机数是计算机生成的一系列看似随机的数字序列。
虽然伪随机数并不是真正的随机数,但它们的使用仍然非常广泛,并且在计算机科学和密码学等领域都有重要的应用。
在本文中,我将介绍两种常见的伪随机数算法:线性同余生成器和梅森旋转算法。
1. 线性同余生成器(Linear Congruential Generator,LCG):线性同余生成器是一种简单的伪随机数生成器,它的计算公式为:X_{n+1} = (a * X_n + c) mod m其中,X_n是当前伪随机数,X_{n+1}是下一个伪随机数,a、c和m是预先设定的常数。
LCG算法的优点是简单易实现,并且具有较好的随机性。
通过选择合适的参数值,它可以产生高质量的伪随机数。
然而,LCG算法也有一些缺点。
当参数选择不当时,会导致周期较短或重复出现相同的伪随机数序列。
此外,在密码学等关键领域中,LCG算法的安全性较低,易受到攻击。
2. 梅森旋转算法(Mersenne Twister):梅森旋转算法通过一个大型的位向量来保存当前状态,并通过一系列数学计算来生成下一个伪随机数。
为了提高性能,它使用了位操作和快速模运算等技术。
梅森旋转算法在实践中表现出色,具有较好的均匀性、分布特性和随机性。
目前,它广泛应用于计算机图形学、模拟与建模、游戏开发和密码学等领域。
总结:线性同余生成器和梅森旋转算法是两种常见的伪随机数生成算法。
线性同余生成器简单易实现,但有一定的局限性。
梅森旋转算法复杂、高效,并具有优秀的随机性能。
在选择伪随机数算法时,应根据具体应用需求和安全性要求进行评估和选择。
同时,为了增加随机性,可以采用多种算法的组合或使用更复杂的算法。
伪均匀随机数的计算机检验摘要现代社会中,计算机能力的提高使得随机数发生器在众多领域中有了较为广泛的应用,如蒙特卡罗方法,统计抽样技术和密码学等。
同时关于随机数发生器也产生了很多的理论和方法,本文将简单介绍一些常见的伪均匀随机数发生器:线性同余发生器(LCG方法)和反馈位移寄存器法(FSR方法)。
然后对伪均匀随机数序列进行统计检验。
主要检验方法有参数检验(包括均值、方差或各阶距)、均匀性检验(包括卡方、柯氏和序列检验)、独立性检验(包括相关系数、列联表和游程检验)。
最后,本文将利用Matlab生成一列随机数,并运用SPSS统计软件对此列随机数的统计特性择其适合的方法进行检验。
关键词:伪随机数;随机数发生器;统计检验;SPSS统计分析AbstractIn modern society, the improvement of computer capabilities make random number generator widely used in many areas, such as the Monte Carlo method, statistical sampling techniques and cryptography. At the same time there are a lot of theories and methods on the random number generator, I will introduce some of the common random number generators briefly in this article: linear congruential generator (LCG method) and feedback shift register method (FSR method) . Then I will do statistical tests with the sequence of random numbers . Main methods 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 methods to test statistical properties of the sequence of random numbers.Key words: random number, random number generator, statistical test,SPSS statistical analysis目录摘要 (I)I I一、引言 (1)1基本概念和定理 (4)2 伪随机数 (5)二、产生随机数的一般方法 (3)2.1 取中法 (3)2.1.1 平方取中法 (3)2.1.2乘积取中法 (6)2.2 同余发生器 (7)2.2.1混合同余法 (4)2.2.2乘同余法 (7)2.2.3加同余法 (7)2.3反馈位移寄存器法 (8)三、伪均匀随机数的统计检验 (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: 设随机变量η~)(x F ,则称随机变量η随机抽样序列{}i η为分布)(x F 的随机数。
若η~N ()2,σμ,则称来自η的随机抽样序列 ,,21ηη为正态分布随机数;若η服从指数分布,则称 ,,21ηη为指数分布的随机数;若η[]b a ~,区间均匀分布,则称 ,,21ηη为[]b a ,区间上的均匀分布随机数。
定理1 设)(x F 是连续且严格单调上升的分布函数,它的反函数存在,且记为)(1x F -即x x F F =-)]([1。
若随机变量ζ的分布函数为)(x F ,则F ()ζ~)1,0(U 。
若随机变量R ~)1,0(U ,则)(1R F -的分布函数为)(x F 。
推论 已知)(~x G ξ,设)(x F 是一个分布函数,且反函数)(1x F -存在,则)(~))((1x F G F ξη-=。
定理2:设i X 服从二点分布(),,,21=i 相互独立,且 0}1{}0{====i i X P X P令η=21X +22X +…+2k X … ∆ k X X X 21.0(用二进制表示)则η~)1,0(U定义2:(准均匀分布) 设离散随机变量*η的概率密度为:{}k k i P P 21121=⎭⎬⎫⎩⎨⎧-===**ημη )12210(-=k i ,,,, 则称*η为准均匀分布,且()()121212121-+=*=*k k Var E ηη,。
2 伪随机数显然,用计算机只能产生准均匀随机分布数,但是当k 很大时,*η和均匀随机变量的统计性质差异很小,可以把准均匀随机数做伪均匀随机数。
二、产生随机数的一般方法2.1 取中法2.1.1 平方取中法平方取中法又称自然取中法,首先由Von Neuman 于1940年提出, 此法开始取一个 2s 位十进制整数作为种子,将其平方得到的一个4s 位数(不足4s 位的高位补0),然后取该4s 位中间 2s 位作为下一种子数,并对此数进行规格化(化成小于1的2s 位的实数值),依上述过程类推便得到一维随机数列。
其一般的递推公式是:21{n n w w =+的中间2s 位数字};按此公式依次得到一列数据,然后把这列数据的每一个元素都除以 210s ,可得到[0,1]区间上均匀分布的随机数列{}n u u u ,,, 21。
2.1.2乘积取中法乘积取中法是通过平方取中法改进得到的一种产生随机数的方法,其一般递推公式为:⎪⎩⎪⎨⎧==++-+s n n s s n n n x R x x x 21121110)10(mod 10 式中:1+n x ——第 n+1 个十进制的正整数;1+n R ——第 n+1 个伪随机数。
此方法虽然简单,但均匀性不好,且序列很快趋于零,其长度难以确定,故目前已很少使用。
2.2 同余发生器该发生方法是目前应用最广泛的方法之一,通常我们把它简称为LCG (Linear Congruence Generator )方法,它是由 Lehmer 在1951年提出的。
此方法是利用数论中的同余运算来产生随机数的,故称之为同余发生器。
LCG 方法的一般递推公式为:()()()⎪⎩⎪⎨⎧==+=- ,,,21mod 1n M x r M c ax x n nn n ()* 其中初值为0x ,M 为模数,a 为乘子(乘数),c 为增量(加数),且n x ,M ,a ,c 均为非负整数。
显然由上式得到的n x (n =1,2,…)满足:M x n <≤0。
从而[)10,∈n r 。
当然,递推公式中的参数a ,c ,0x ,M 的选择十分关键。
否则,进行了一定次数的迭代之后会出现短周期的重复现象,因而我们应慎重选取。
当参数a ,c 选择不同时,对应的方法会有稍稍的不同,具体的讨论如下:2.2.1混合同余法当上面的()*式中参数c ﹥0,≠a 1时,则称之为混合同余法,或者称为混合式LCG 。
2.2.2乘同余法当()*式中c =0时的LCG 方法称为乘同余法,或是积式发生器。
具体表示式如下: ()()⎪⎩⎪⎨⎧===- ,,,21mod 1n M x r M ax x n nn n ,初值为0x 。
2.2.3加同余法当()*式中10=≠a c ,时,称之为加同余法。
具体表示式为:()()⎪⎩⎪⎨⎧==+=- ,,,21mod 1n M x r M c x x n nn n ,初值为0x虽说此方法可于以达到最大的周期M ,而且计算机实现比较方便。
但是和上面的混合同余法、乘同余法对比,验证得出:该方法得到的随机数列性质相对较差。
所以,一般常用的是混合同余法和乘同余法。
2.3反馈位移寄存器法随着 LCG 方法的应用,人们渐渐发现其缺陷并开始寻找新的随机数发生方法。
因此,通过大家的努力,在1965年以 Tausworthe 的相关论文为基础,出现了几种比较好的随机数发生器。