非均匀分布随机数的产生及其在计算机模拟研究中的应用

合集下载

随机模拟的方法和应用

随机模拟的方法和应用

随机模拟的方法和应用随机模拟是一种重要的数学方法,可以用来模拟各种现实世界中复杂的系统、行为和事件。

它的应用领域广泛,包括金融、统计学、天气预测、交通规划、工程设计等多个领域。

本文将简要介绍随机模拟的基础知识以及其在不同领域的应用。

1. 随机模拟的基础知识随机模拟的实质是通过计算机程序生成的一系列随机数,来模拟真实的随机过程。

因此,随机模拟的核心是随机数生成器。

随机数生成器需要生成能够代表真实随机事件的随机数,这需要考虑一些关键问题:如何确定随机数的分布、如何生成不相关的随机数、如何满足特定的统计性质等。

常用的随机数生成方法包括线性同余发生器、Marsaglia发生器、梅森旋转游程测试以及基于物理过程的随机数发生器。

这些方法在不同场合下各有优缺点,可以根据具体需求进行选择。

随机模拟的另一个基础是随机过程的建模。

随机过程是一组与时间有关的随机变量序列,用来描述某个系统、事件或行为的随机性质。

在进行随机模拟前,需要根据实际应用建立相应的随机过程模型,通常包括确定随机变量的分布、相关性结构以及参数等。

2. 随机模拟在金融中的应用在金融领域,随机模拟被广泛应用于风险管理、资产定价、投资组合优化等方面。

随机模拟可以通过模拟不断变化的金融市场来评估不同投资策略的风险水平和收益率。

其中,蒙特卡罗模拟是一种常用的方法,它通过生成随机数对股票价格进行模拟,以此来分析不同投资组合在不同市场情况下的表现。

此外,随机模拟还可以用来构建金融风险模型,包括VaR、CVaR等风险指标。

通过随机模拟的方法,可以不断地生成样本数据,并结合实际数据来计算风险指标,从而更加准确地评估金融投资风险。

3. 随机模拟在天气预测中的应用天气预测是一项非常重要的应用领域,也是随机模拟的重要应用之一。

天气系统具有复杂的非线性关系,因此难以建立确定性模型。

随机模拟通过计算机程序模拟大气系统、海洋系统等自然系统的复杂变化,提供了一种高效、准确的天气预测方法。

随机数的产生与模拟

随机数的产生与模拟

本章目录
5
随机数的产生与模拟
1 均匀随机数的产生

均匀随机数的产生:
线性同余法(LCG)的递推公式为:
x n (axn 1 c)(modM ) xn rn M 初值x0
n 1,2,...
本章目录
6
随机数的产生与模拟
1 均匀随机数的产生

均匀随机数的产生:
当 c 0 ,上式称为混合同余发生器,当 c 0 时,称为乘同余发生器,此时当模为素数 时,称它为素数模乘同余发生器。
本章目录
2
随机数的产生与模拟

均匀分布随机数:
定理: 设F ( x) 是连续且严格单调上升的分布函 数,它的反函数存在,且记为F ( x) , 的分布函数为 F ( x) , 1、 若随机变量 则F ( ) ~ U (0,1) ; F ( x) 2、 若随机变量 R ~ U (0,1) ,则F ( R) 的分布函数为
n n
k 128
本章目录 14
随机数的产生与模拟
2非均匀随机数的产生

由均匀分布随机数产生非均匀分布随机 数的主要方法有:逆变换法,合成法和 筛选法。
本章目录 15
随机数的产生与模拟
2非均匀随机数的产生

1 逆变换法:
对任意分布函数 F ( x) ,要产生服从该分布 的随机数,由定理知其抽样步骤为: (1)由U (0,1) 抽取 R ; (2) 计算F 1 (R)
x 令 rn n 2 L n 1,2,...
则 rn 即为FSR方法产生的均匀随机数列。
本章目录 11
随机数的产生与模拟
1 均匀随机数的产生

组合发生器 : 先用一个随机数发生器产生的随机数列为 基础,再用另一个发生器对随机数列进行重新 排列得到的新数列作为实际使用的随机数。这 种把多个独立的发生器以某种方式组合在一起 作为实际使用的随机数,希望能够比任何一个 单独的随机数发生器得到周期长、统计性质更 优的随机数,即组合发生器。

非均匀分布随机数的产生及其在计算机模拟研究中的应用

非均匀分布随机数的产生及其在计算机模拟研究中的应用
( 1)
2 1 x ) ( 7) exp ( 2 2π 但其分布函数不能用有限的解析形式来表示 , 给转换带来困
假定连续随机变量 X 是连续随机变量 R 的函数
x = φ( r)
f ( x) =
由概率统计知识可知 , X 与 R 在对应点的分布函数的数值应 当相等 , 即产生 R 的反变换
F ( x ) = F ( r) ( 2)
收稿日期 :1999 - 04 - 27
△本文得到国家自然科学基金和广东省自然科学基金资助
3 现为华中理工大学生物工程系博士研究生 3 3 中山医科大学
・59 ・
Journal of Mathematical Medicine Vol. 13 NO. 1 2000
( 湖北职工医学院 荆州 434000)
摘 要 非均匀分布随机数在进行计算机模拟研究中有重要作用 , 但计算机高级语言通常都只提供产生均匀分布随机数的函 数 ,给研究工作带来困难 。该文提出的方法 ,较好地解决了这一问题 ,有很强的适用性 。 关键词 非均匀分布随机数 计算机模拟 程序设计 3
物数学学报 ,1997 ,11 (5) :450454.
3 严蔚敏等 1 数据结构 1 第二版 1 北京 : 清华大学出版社 ,1995 ,1315.
收稿日期 :1999 - 03 - 10
・60 ・
P( X < x) = P( F - 1 ( R) < x) = P( R < F( x) )
1 - 1 x2 [ tg ( ) + C ] 2π x1 ( 9) 式中的 C 为常数 。由此可导出其密度函数为 :
r2 =
2 2
因为 R 是在 [ 0 , 1 ]区间上的均匀分布的连续随机变量 , 故

不均匀分布数学建模拟合曲线

不均匀分布数学建模拟合曲线

不均匀分布数学建模拟合曲线
不均匀分布数学建模是指利用数学模型来描述和分析不均匀分布数据的特征和规律。

一种常见的曲线模型用于拟合不均匀分布数据是非线性回归模型。

非线性回归模型可以通过最小二乘法来进行参数估计和模型拟合。

具体步骤如下:
1. 根据不均匀分布数据的特点选择合适的非线性函数模型,比如指数函数、对数函数、幂函数、多项式函数等。

2. 根据选择的非线性函数模型设定待估计的模型参数。

3. 根据最小二乘法原理,构建估计函数和目标函数。

4. 对目标函数进行最小化求解,得到模型参数的估计值。

5. 使用估计的模型参数对曲线进行拟合,得到拟合曲线。

6. 利用拟合曲线对不均匀分布数据进行预测和分析。

需要注意的是,选择合适的非线性模型需要根据具体问题进行判断和调整。

在模型拟合时,还要考虑模型的拟合效果和参数的稳定性,避免过拟合和欠拟合问题。

实际应用中,不均匀分布数据的数学建模还可以采用其他方法和技术,比如核密度估计、样条函数拟合、混合模型等。

根据
具体问题的特点选择合适的建模方法和技术,进行数学建模和模型拟合。

产生非均匀随机数的几种方法

产生非均匀随机数的几种方法
因此 , 若给 定 了均 匀 分布 随机 数 R , 则 具 有 给 定 分 布 F的 随机
对其 进行 了抽样 ,0 ≤g ( ) :e
1 。抽 样 步骤如下 : ①
产生R l 、R 2 ~u ( o , 1 );② 计 算 Y = 一 I n R l ,则 Y~ ^ ( ); ③ 若
在 现 实生 活 中 ,当人 们 研 究一个 系统 或 一 个 过程 时 , 由于 系统 的 复杂 性 , 所 建立 的数 学模型 不 能直 接 利用 解析 方 法求 解 。 这时 , 模拟 方 法 往 往 是解 决 问题 的一 种有 效 手 段 。而 有 效 地产 生 具有 不 同 分布 的随 机 数 , 即对 具 有 不 同分 布 的随机 变 量 的模 拟 是 随机模 拟 的基 础 。 定义 : 设 随机 变 量 ~ F ( x ) , 则 称 随机 变 量 叩 的随机 抽 样序
解 :X 的密 度 函 数为 f ( x ) = B , x ≥0 , 则由 ( 2 )式 , 得

s e x p { 一 , 或 等 价 地 一 l n ≠, 则 令 = y , 否 则
转① 。
S A S 程 序 如下 :
D at a s e mi n o r ma l
1 . 1逆 变换 法 ( 反 函数 法 ) 定 理 :设 , ∽ 是 连 续 且严 格 单调 上 升 的 分 布 函数 , 它 的反 函数 存 在 , 且记 为 F ( ) ,即 F [ F ( ) ] = x 。① 若 随机 变 量 的分 布函数为F ( ) , 则F ( ) ~ ( O , 1 ) ; 郭 疤 嬗 R ̄U ( O , 1 ) , 则F ( R ) 的分布 函数 为 F ( x ), 该 定 理证 明参 见 [ 1 ] 。在 此 定理 的基 础上 , 设 ~ u ( o , 1 ), 则 服从任 意分布 F 0 ) 的随机数 X , = F ( ) ( 1 ) , 此方 法 原则 上 适 用于 任 意随 机变 量 的 模拟 , 若进 一 步假 设

随机数的数学证明

随机数的数学证明

随机数的数学证明随机数是现代计算机科学中不可或缺的概念,它在密码学、统计学、模拟实验等领域有着广泛的应用。

随机数的性质很重要,因为它关系到计算和实验的准确性和可靠性。

本文将探讨随机数的数学证明以及其在计算机科学中的应用。

一、随机数的定义随机数是指一系列的数字或事件,当对这些数字或事件进行统计时,它们不会显示出任何可预测的规律性和可计算性。

随机数在一定程度上呈现出不可重现性、不可预测性和独立性。

二、随机数的生成方法有很多方法可以生成随机数,其中常用的有伪随机数生成算法和真随机数生成算法。

1. 伪随机数生成算法伪随机数生成算法是按照一定的规则生成看起来像随机数的数字序列。

它们依赖于一个种子(或初始状态)来生成序列,并且当相同的种子被使用时,序列也是相同的。

伪随机数生成算法通常使用一些数学模型来计算下一个数,如线性同余发生器和梅森旋转。

2. 真随机数生成算法真随机数生成算法是根据物理过程的随机性来生成随机数。

常见的真随机数生成方法包括基于物理噪声、量子随机数生成器和气象数据生成器等。

三、随机数的数学证明随机数一般不能直接用数学方法证明其随机性,因为随机数具有不可预测性和不可计算性。

然而,可以通过检测随机数生成算法的统计特性来证明其质量是否符合要求。

1. 统计测试统计测试是通过对生成的随机数序列进行统计分析,得出一些指标以评估随机性的好坏。

常见的统计测试包括均匀性测试、独立性测试和周期性测试等。

- 均匀性测试用于检验生成的随机数是否在一定的范围内均匀分布。

常用的测试方法有卡方检验、Kolmogorov-Smirnov检验等。

- 独立性测试用于检验生成的随机数是否相互独立。

常用的测试方法有序列重复性检验、序列相关性检验等。

- 周期性测试用于检验生成的随机数是否具有周期性。

常用的测试方法有最大周期测试、重叠周期测试等。

2. 确定性测试确定性测试是通过对随机数生成算法进行分析,推导出生成的随机数序列的特征。

这种测试是基于理论模型和数学推导的。

计算机科学中的随机数生成与应用

计算机科学中的随机数生成与应用

计算机科学中的随机数生成与应用随机数生成是计算机科学中非常重要的一部分,而随机数也被广泛应用在众多的领域中。

那么什么是随机数,随机数生成又有什么意义?什么是随机数?随机数,顾名思义,就是一种无规则规律的数值。

这些数值并没有一个确定的模式,也无法通过常规手段得到。

一般情况下,随机数是在计算机程序中生成的,它们并不是真正的随机数。

在计算机中生成随机数需要借助“随机性”的概念,通过一些算法来实现。

这些算法也被称为“伪随机数生成器”,因为它们无法真正地创造随机数。

随机数生成的意义虽然计算机生成的随机数并不是真正的随机数,但在计算机科学领域中,它们也有着极其重要的应用,如密码学、统计学等。

在实际应用中,通过生成随机数,可以大大提高数据的安全性、确保数据独立性,还能保障程序运行的公正性。

常见的随机数生成算法常见的随机数生成算法有伪随机数生成算法、异步时钟生成算法等。

伪随机数生成算法伪随机数生成算法是创造伪随机数的一种方法。

这种方法是基于确定性算法的(如多项式算法,线性同余算法、梅森旋转算法等),它们生成的伪随机数是根据预定义的数学公式和初始的随机种子来计算的。

异步时钟生成算法异步时钟生成算法是一种利用不同的振荡器来生成随机数字的方法。

它是利用外部不确定的实际事件发生时间,如硬件随机信号源、热噪声源、辐射源等,将这些随机事件作为生成随机数的种子,从而产生随机数字。

随机数在计算机领域中的应用密码学在密码学领域中,随机数非常重要。

如RSA公钥加密算法,要求产生两个大素数p和q,这个p和q的生成过程,也是通过随机数来实现的。

此外,在SSL通信开发中,客户端和服务端需用随机数生成确保数据传输的安全性。

统计分析利用随机数生成器,可以生成随机数据,用于数据分析和统计。

比如在彩票、赌博等方面中,随机数就是非常关键的因素。

还有,随机数生成器也是实现蒙特卡洛模拟的必备工具。

随机数在计算机领域中的具体实现在实际应用中,随机数的实现有多种方式,如:- 系统随机数生成API操作系统系统中提供的API,如Windows操作系统提供的CryptGenRandom、Unix操作系统提供的/dev/random、Mac操作系统提供的SecRandomCopyBytes等。

计算机模拟实验一 随机数的产生

计算机模拟实验一 随机数的产生

{
0, x<0
λ e − λx , x ≥ 0
, 其中λ =0.1 )
3. 原子核反应堆由铅墙护卫,设铅墙厚5cm,现有大量中子垂直飞向铅墙, 将会与铅原子发生碰撞,假设每碰撞一次中子直线行走1cm,若发生碰撞10次 中子的动能将减为0,会停在铅墙里,试用计算机模拟求中子越出的百分比。
四、实验步骤 五、实验数据 六、实验报告要求: 实验报告要求:
实验一 随机数的产生
一、实验目的
1. 掌握线性同余法产生均匀分布随机数的原理。 2. 掌握用逆变换方法从均匀分布产生非均匀分布的随机数。 3. 计算机模拟求解中子越出铅墙的百分比。
二、实验仪器
P000个(0,1)区间满足均匀分布的随机数; 2. 写一个程序,产生1000个满足指数分布的随机数; (指数分布随机变量的概率密度函数f(x)=
1. 整理经过运行正确的源程序,加上注释。 2..总结随机数的产生方法。
七、思考题
写一个程序使用1000个随机数决定3的平方根的近似值;

计算机中随机数的产生

计算机中随机数的产生
movedata(0x0040,0x006c,FP_SEG(temp),FP_OFF(temp),4);
2
这个函数用来移动内存数据,其中 FP_SEG(far pointer to segment)是 取 temp 数组段地址的函数,FP_OFF(far pointer to offset)是取 temp 数组相对地址的函数,movedata 函数的作用是把位于 0040:006CH 存储单元 中的双字放到数组 temp 的声明的两个存储单元中。这样可以通过 temp 数组把 0040:006CH 处的一个 16 位的数送给 RAND_SEED。
那么计算机中随机数是怎样产生的呢?有人可能会说,随机数是由“随机种 子”产生的。没错,随机种子是用来产生随机数的一个数,在计算机中,这样的 一个“随机种子”是一个无符号整形数。那么随机种子是从哪里获得的呢?
下面看这样一个 C 程序: //rand01.c #include
static unsigned int RAND_SEED;
现在,我们明白随机种子是从哪儿获得的,而且知道随机数是怎样通过随机 种子计算出来的了。那么,随机种子为什么要在内存的 0040:006CH 处取? 0040:006CH 处存放的是什么?
学过《计算机组成原理与接口技术》这门课的人可能会记得在编制 ROM BIOS 时钟中断服务程序时会用到 Intel 8253 定时/计数器,它与 Intel 8259 中 断芯片的通信使得中断服务程序得以运转,主板每秒产生的 18.2 次中断正是处 理器根据定时/记数器值控制中断芯片产生的。在我们计算机的主机板上都会有 这样一个定时/记数器用来计算当前系统时间,每过一个时钟信号周期都会使记
7
case 15: ch[i]='o'; break ;

《均匀随机数的产生》 导学案

《均匀随机数的产生》 导学案

《均匀随机数的产生》导学案一、学习目标1、了解均匀随机数的概念。

2、掌握利用计算器或计算机产生均匀随机数的方法。

3、能运用均匀随机数解决实际问题。

二、学习重点1、均匀随机数的产生方法。

2、用均匀随机数模拟随机试验。

三、学习难点用均匀随机数模拟几何概型的问题。

四、知识链接1、随机数的概念:随机数是在一定范围内随机产生的数,并且得到这个范围内的每一个数的机会是均等的。

2、随机数的产生方法:可以通过抽签、抛掷骰子、随机数表等方法产生随机数。

五、新课导入在前面的学习中,我们已经了解了随机事件、概率等概念,也知道了通过随机试验可以获取随机事件发生的概率。

但是在实际问题中,很多随机试验是难以实际操作的,比如要计算一个不规则图形的面积。

这时候,均匀随机数就派上了用场。

那么,什么是均匀随机数?又如何产生均匀随机数呢?让我们一起来探究吧!六、均匀随机数的概念均匀随机数是在一定区间内随机产生的数字,并且在这个区间内的每一个数被抽取到的概率相等。

例如,在区间0,1内产生的均匀随机数,每个数被产生的可能性都是相同的。

七、均匀随机数的产生1、利用计算器产生均匀随机数不同型号的计算器产生均匀随机数的操作方法可能不同,但通常都有对应的按键或功能。

以常见的科学计算器为例,一般可以通过以下步骤产生0,1之间的均匀随机数:(1)打开计算器。

(2)按下“SHIFT”键。

(3)按下“RAN”键,此时屏幕上会显示一个在0,1之间的随机数。

如果要产生a,b之间的均匀随机数,可以通过以下公式进行转换:R = a +(b a) ×随机数。

2、利用计算机软件产生均匀随机数许多计算机软件都可以产生均匀随机数,比如 Excel、Python 等。

在 Excel 中,可以使用“RAND()”函数来产生0,1之间的均匀随机数。

在 Python 中,可以使用“randomrandom()”函数来生成0,1之间的均匀随机数。

八、用均匀随机数模拟随机试验1、步骤(1)建立概率模型,确定所需产生的随机数的范围。

伪均匀随机数的计算机检验

伪均匀随机数的计算机检验

伪均匀随机数的计算机检验摘要现代社会中,计算机能力的提高使得随机数发生器在众多领域中有了较为广泛的应用,如蒙特卡罗方法,统计抽样技术和密码学等。

同时关于随机数发生器也产生了很多的理论和方法,本文将简单介绍一些常见的伪均匀随机数发生器:线性同余发生器(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)一、引言在科学研究和工程设计中广泛应用到计算机模拟方法,从而常常需要产生大量的具有特定统计性质的随机数。

产生非均匀随机数的几种方法

产生非均匀随机数的几种方法

产生非均匀随机数的几种方法作者:邢玉清张二丽来源:《硅谷》2013年第23期摘要在介绍产生非均匀随机数几种方法的基础上针对不同的具体问题使用不同的方法予以解决,并给出了使用SAS软件解决这些问题的程序。

关键词非均匀随机数;逆变换法;筛选抽样法;MCMC方法;SAS中图分类号:O211 文献标识码:A 文章编号:1671-7597(2013)20-0087-02在现实生活中,当人们研究一个系统或一个过程时,由于系统的复杂性,所建立的数学模型不能直接利用解析方法求解。

这时,模拟方法往往是解决问题的一种有效手段。

而有效地产生具有不同分布的随机数,即对具有不同分布的随机变量的模拟是随机模拟的基础。

定义:设随机变量~,则称随机变量的随机抽样序列{}为分布的随机数。

计算机产生的随机数是依照确定的算法而产生的数列,称为伪随机数。

为产生服从一般分布的随机数,首先要产生区间均匀分布的随机数,利用伪随机数发生器生成一系列上均匀分布的随机数,则在区间均匀分布随机数的基础上,其他许多非均匀分布的随机数都可以经由变换得到。

一般情况下,个独立随机变量可由次重复抽样获得。

1 产生非均匀分布随机数的几种方法1.1 逆变换法(反函数法)定理:设是连续且严格单调上升的分布函数,它的反函数存在,且记为,即。

①若随机变量的分布函数为,则~;②若随机变量~,则的分布函数为,该定理证明参见[1]。

在此定理的基础上,设~,则服从任意分布的随机数,(1),此方法原则上适用于任意随机变量的模拟,若进一步假设分布有密度函数,则应满足方程(2),因此,若给定了均匀分布随机数,则具有给定分布的随机数可由求解方程得到。

利用(1)或(2)由均匀随机数直接产生分布随机数的方法称为逆变换法。

抽样步骤为:①产生~;②计算。

例1:产生具有参数的指数分布随机数。

解:的密度函数为,则由(2)式,得由此得,由于与同是上均匀分布的随机数,故上式可简化为,抽样步骤为:①产生~;②计算。

产生非均匀随机数的几种方法

产生非均匀随机数的几种方法

产生非均匀随机数的几种方法作者:邢玉清张二丽来源:《硅谷》2013年第23期摘要在介绍产生非均匀随机数几种方法的基础上针对不同的具体问题使用不同的方法予以解决,并给出了使用SAS软件解决这些问题的程序。

关键词非均匀随机数;逆变换法;筛选抽样法;MCMC方法;SAS中图分类号:O211 文献标识码:A 文章编号:1671-7597(2013)20-0087-02在现实生活中,当人们研究一个系统或一个过程时,由于系统的复杂性,所建立的数学模型不能直接利用解析方法求解。

这时,模拟方法往往是解决问题的一种有效手段。

而有效地产生具有不同分布的随机数,即对具有不同分布的随机变量的模拟是随机模拟的基础。

定义:设随机变量~,则称随机变量的随机抽样序列{}为分布的随机数。

计算机产生的随机数是依照确定的算法而产生的数列,称为伪随机数。

为产生服从一般分布的随机数,首先要产生区间均匀分布的随机数,利用伪随机数发生器生成一系列上均匀分布的随机数,则在区间均匀分布随机数的基础上,其他许多非均匀分布的随机数都可以经由变换得到。

一般情况下,个独立随机变量可由次重复抽样获得。

1 产生非均匀分布随机数的几种方法1.1 逆变换法(反函数法)定理:设是连续且严格单调上升的分布函数,它的反函数存在,且记为,即。

①若随机变量的分布函数为,则~;②若随机变量~,则的分布函数为,该定理证明参见[1]。

在此定理的基础上,设~,则服从任意分布的随机数,(1),此方法原则上适用于任意随机变量的模拟,若进一步假设分布有密度函数,则应满足方程(2),因此,若给定了均匀分布随机数,则具有给定分布的随机数可由求解方程得到。

利用(1)或(2)由均匀随机数直接产生分布随机数的方法称为逆变换法。

抽样步骤为:①产生~;②计算。

例1:产生具有参数的指数分布随机数。

解:的密度函数为,则由(2)式,得由此得,由于与同是上均匀分布的随机数,故上式可简化为,抽样步骤为:①产生~;②计算。

随机数生成及其在统计模拟中的应用

随机数生成及其在统计模拟中的应用

随机数生成及其在统计模拟中的应用黄湘云关键词:随机数; 统计检验; 模拟审稿:郎大为、边蓓蕾;编辑:吴佳萍揭秘统计软件如 R,Octave,Matlab 等使用的随机数发生器,然后做一些统计检验,再将其应用到独立随机变量和的模拟中,最后与符号计算得到的精确结果比较。

除特别说明外,文中涉及到的随机数都是指伪随机数,发生器都是指随机数发生器。

背景随机数的产生和检验方法是蒙特卡罗方法的重要部分,另外两个是概率分布抽样方法和降低方差提高效率方法。

在 20 世纪 40 年代中期,当时为了原子弹的研制,乌拉姆(S.Ulam)、冯诺依曼(J.von Neumann)和梅特罗波利斯(N. Metropolis)在美国核武器研究实验室创立蒙特卡罗方法。

当时出于保密的需要,与随机模拟相关的技术就代号“蒙特卡罗”。

早期取得的成果有产生随机数的平方取中方法,取舍算法和逆变换法等。

这两个算法的内容见统计之都王夜笙的文章。

随机数生成讲随机数发生器,不得不提及一个名为 Mersenne Twister(简称 MT)的发生器,它的周期长达219937−1,现在是R 、Octave 和 Matlab等软件(较新版本)的默认随机数发生器。

Matlab通过内置的rng函数指定不同的发生器,其中包括1995年Matlab采用George Marsaglia 在1991年提出的借位减(subtract with borrow,简称SWB)发生器。

在Matlab中,设置如下命令可指定发生器及其状态,其中1234是随机数种子,指定发生器的状态,目的是重复实验结果,v5uniform是发生器的名字。

rng(1234, 'v5uniform') Octave 通过内置的rand函数指定发生器的不同状态,为获取相同的两组随机数,state 参数得设置一样,如1234(你也可以设置为别的值)。

Octave已经放弃了老版本内置的发生器,找不到命令去指定早期的发生器,这个和 Matlab 不一样。

随机数的产生 概率论论文

随机数的产生 概率论论文

概率论课程设计随机数的产生摘要:随机数是概率论与数理统计中一个重要的概念。

本文研究了随机数的产生,先给出了均匀分布的随机数的产生算法,再通过均匀分布的随机数变换得到其他连续型随机数的产生算法.利用编程给出了产生均匀分布随机数的算法,探讨了同余法的理论原理.通过均匀随机数产生其他分布的随机数,我们列举了几种通用算法,并讨论各个算法的优缺点,最后以正态分布为例验证高效舍选法的优势.关键词:随机数;概率论;均匀分布;算法;目录:一 随机数与伪随机数二 均匀分布随机数的产生三 非均匀分布随机数的产生正文一、 随机数与伪随机数随机变量η的抽样序列12,,n ηηηL ,…称为随机数列.如果随机变量η是均匀分布的,则η的抽样序列12,,n ηηηL ,…称为均匀随机数列;如果随机变量η是正态分布的随机变量则称其抽样序列为正态随机数列.比如在掷一枚骰子的随机试验中出现的点数x 是一个随机变量,该随机变量就服从离散型均匀分布,x 取值为1,2,3,4,5,6,取每个数的概率相等均为1/6.如何得到x 的随机数?通过重复进行掷骰子的试验得到的一组观测结果12,,,n x x x L L 就是x 的随机数.要产生取值为0,1,2,…,9的离散型均匀分布的随机数,通常的操作方法是把10个完全相同的乒乓球分别标上0,1,2,…,9,然后放在一个不透明的袋中,搅拦均匀后从中摸出一球记号码1x 后放回袋中,接着仍将袋中的球搅拌均匀后从袋中再摸出一球记下号码2x 后再放回袋中,依次下去,就得到随机序列12,,,n x x x L L .通常称类似这种摸球的方法产生的随机数为真正的随机数.但是,当我们需要大量的随机数时,这种实际操作方法需要花费大量的时间,通常不能满足模拟试验的需要,比如教师不可能在课堂上做10000次掷硬币的试验,来观察出现正面的频率.计算机可以帮助人们在很短时间产生大量的随机数以满足模拟的需要,那么计算机产生的随机数是用类似摸球方法产生的吗?不是.计算机是用某种数学方法产生的随机数,实际上是按照一定的计算方法得到的一串数,它们具有类似随机数的性质,但是它们是依照确定算法产生的,便不可能是真正的随机数,所以称计算机产生的随机数为伪随机数.在模拟计算中通常使用伪随机数.对这些伪随机数,只要通过统计检验符合一些统计要求,如均匀性、随机性等,就可以作为真正的随机数来使用,我们将称这样产生的伪随机数为随机数.在计算机上用数学方法产生随机数的一般要求如下:1)产生的随机数列要有均匀性、抽样的随机性、试验的独立性和前后的一致性.2)产生的随机数列要有足够长的周期,以满足模拟实际问题的要求.3)产生随机数的速度要快,占用的内存少.计算机产生随机数的方法内容是丰富的,在这里我们介绍几种方法,计算机通常是先产生[0,1]区间上均匀分布的随机数,然后再产生其他分布的随机数.二、均匀分布随机数的产生2.1 算法1在vc的环境下,为我们提供了库函数rand()来产生一个随机的整数.该随机数是平均在0~RAND_MAX之间平均分布的,RAND_MAX是一个常量,在VC6.0环境下是这样定义的:#define RAND_MAX 0x7fff它是一个short 型数据的最大值,如果要产生一个浮点型的随机数,可以将rand()/1000.0这样就得到一个0~32.767之间平均分布的随机浮点数.如果要使得范围大一点,那么可以通过产生几个随机数的线性组合来实现任意范围内的平均分布的随机数.例如要产生-1000~1000之间的精度为四位小数的平均分布的随机数可以这样来实现.先产生一个0到10000之间的随机整数.方法如下:int a = rand()%10000;然后保留四位小数产生0~1之间的随机小数:double b = (double)a/10000.0;然后通过线性组合就可以实现任意范围内的随机数的产生,要实现-1000~1000内的平均分布的随机数可以这样做:double dValue =(rand()%10000)/10000.0*1000-(rand()%10000)/10000.0*1000;则dValue就是所要的值.但是,上面的式子化简后就变为:double dValue = (rand()%10000)/10.0-(rand()%10000)/10.0;这样一来,产生的随机数范围是正确的,但是精度不正确了,变成了只有一位正确的小数的随机数了,后面三位的小数都是零,显然不是我们要求的,什么原因呢,又怎么办呢.先找原因,rand()产生的随机数分辨率为32767,两个就是65534,而经过求余后分辨度还要减小为10000,两个就是20000而要求的分辨率为1000*10000*2=20000000,显然远远不够.下面提供的方法可以实现正确的结果:double a = (rand()%10000) * (rand()%1000)/10000.0;double b = (rand()%10000) * (rand()%1000)/10000.0;double dValue = a-b;则dValue就是所要求的结果.在下面的函数中可以实现产生一个在一个区间之内的平均分布的随机数,精度是4位小数.double AverageRandom(double min,double max){int minInteger = (int)(min*10000);int maxInteger = (int)(max*10000);int randInteger = rand()*rand();int diffInteger = maxInteger - minInteger;int resultInteger = randInteger % diffInteger + minInteger;return resultInteger/10000.0;}但是有一个值得注意的问题,随机数的产生需要有一个随机的种子,因为用计算机产生的随机数是通过递推的方法得来的,必须有一个初始值,也就是通常所说的随机种子,如果不对随机种子进行初始化,那么计算机有一个缺省的随机种子,这样每次递推的结果就完全相同了,因此需要在每次程序运行时对随机种子进行初始化,在vc 中的方法是调用srand (int )这个函数,其参数就是随机种子,但是如果给一个常量,则得到的随机序列就完全相同了,因此可以使用系统的时间来作为随机种子,因为系统时间可以保证它的随机性.2.2 算法2:用同余法产生随机数同余法简称为LCG(Linear Congruence Gener-ator),它是Lehmer 于1951年提出来的.同余法利用数论中的同余运算原理产生随机数.同余法是目前发展迅速且使用普遍的方法之一.同余法(LCG)递推公式为1()(mod )n n x ax c m -=+ (n=1,2,…), (1) 其中n x ,a ,c 均为正整数.只需给定初值x.,就可以由式(1)得到整数序列{n x },对每一n x ,作变换n u =n x /m ,则{n u }(n=1,2,…)就是[0,1)上的一个序列.如果{n u }通过了统计检验,那么就可以将n u 作为[0,1)上的均匀分布随机数.在式(1)中,若c=0,则称相应的算法为乘同余法,并称口为乘子;若c ≠0,则称相应的算法为混合同余法.同余法也称为同余发生器,其中0x 称为种子.由式(1)可以看出,对于十进制数,当取模m=10k(k 为正整数)时,求其同余式运算较简便.例如36=31236(mod102),只要对21236从右截取k=2位数,即得余数36.同理,对于二进制数,取模m=2k 时,求其同余式运算更简便了.电子计算机通常是以二进制形式表示数的.在整数尾部字长为L 位的二进制计算机上,按式(1)求以m 为模的同余式时,可以利用计算机具有的整数溢出功能.设L 为计算机的整数尾部字长,取模m=2L ,若按式(1)求同余式时,显然有 11111;[()/].n n n n n n n ax c m x ax c ax c m x ax c m ax c m -----+<=++≥=+-+当时,则当时,则这里[x]是取x 的整数部分.在电子计算机上由1n x -求n x 时,可利用整数溢出原理.不进行上面的除法运算.实际上,由于计算机的整数尾部字长为L ,机器中可存放的最大整数为2L -1,而此时a 1n x -+c ≥m ≥2L -1,因此a 1n x -+c 在机器里存放时占的位数多于L 位,于是发生溢出,只能存放n x 的右后L 位.这个数值恰是模m=2L 的剩余,即n x .这就减少了除法运算,而实现了求同余式.经常取模m=2L (L 为计算机尾部字长),正是利用了溢出原理来减少除法运算.由式(1)产生的n x (n=1,2,……),到一定长度后,会出现周而复始的周期现象,即{n x }可以由其某一子列的重复出现而构成,这种重复出现的子列的最短长度称为序列n x 的周期.由式(1)不难看出,{n x }中两个重复数之间的最短距离长度就是它的周期,用T 代表周期.周期性表示一种规律性,它与随机性是矛盾的.因此,通常只能取{n x }的一个周期作为可用的随机序列.这样一来,为了产生足够多的随机数,就必须{n x }的周期尽可能地大.由前所述,一般取m=2L,这就是说模m 已取到计算机能表示的数的最大数值,意即使产生的随机数列{n x }的周期达到可能的最大数值,如适当地选取参数0x ,a ,c 等,还可能使随机数列{n x }达到满周期. 三、非均匀分布随机数的产生3.1 一般通用方法3.1.1组合法组合法的基本思想是把预定概率密度函数f ( x ) 表为其它一些概率密度的线性组合.而这些概率密度的随机抽样容易产生.通过这种避难就易的手段我们也许可以达到较高的输出速度和较好的性能.若分布密度函数f ( x ) 能表为如下式(2)所示的函数项级数的和,1()()i i i f x p f x ∞==∑ (2)其 中1ii p ∞=∑,诸f( x )皆为概率密度函数.则依如下步骤可产生分布为f ( x )一次抽样. ( 1 ) 产生一个随机自然数I , 使I 服从如下分布律:P ( I = i ) = p i i = 1 , 2 , 3……( 2 ) 产生服从f I ( x )的随机数0X证明利用全概率公式,有:11()()()()()i i i i P x X x dx P I i P x X x dx I i p f x dxf x dx∞=∞=<≤+==<≤+|===∑∑故X 服从f ( x ) 分布.我们以产生双指数(或拉普拉斯)分布的随机数为例来简单说明这种方法.双指数分布具有 概率密度函数f ( x ) = 0 . 5x e- f ( x ) 可表为:()0.5()0.5()l r f x f x f x =+ (3)其中()r f x 是指数分布,()l f x 是指数分布的对称分布.故产生双指数分布的抽样可按如下方法: 产生U 1 , U 2~U ( 0 , 1 ) ;若U 1 > 0 . 5 , 则令X = I n U 2,否则X = - I n U 2. 在式(2) 中, 若i →∞, 有p i → 0 ,则可用函数列{()}i i p f x 的前有限项和逼近f ( x ).这是一种近似的方法,与通常的函数逼近原理相同.只要近似的精度 ( 在某种“精度”的意义之下) 达到要求,我们就可以采用近似的方法 .使用组合法时,各f i ( x ) 的抽样应该容易产生,故选用合适的概率密度函数族{ f i ( x )}把任意连续分布表为式(2) ,乃是使用组合法的关键.3.3.2 概率密度变换法这是一种比较新的通用随机数产生方法.其主要的目的是对一般的f(x)找出较好的覆盖函数以达到较高的效率.我们知道,对某一特定的概率密度f(x),我们可以使用最优化技术找到好的覆盖函数.但对于一般情况,我们只能期望产生效率尚可的覆盖函数. H O R M A N N用概率密度变换的方法生成一曲边梯形作为覆盖函数.其原理如下:使用一个变换函数T (x)把预定密度函数f ( x ) 变换为h ( x ) = T ( f ( x ) ) ,用一个分段线性函数l ( x )覆盖h ( x ),如图2 - 4 左图; h ( x ) 若是上凸的,则T1 ( l ( x ) )将是f ( x ) 的一个较好的覆盖函数这个方法在选择合适的T ( x ) ( l o g ( x ) 或1 / x a等) 后,能产生随机数包括了较多的分布类型.这个方法有较短的预处理时间,但需要较多的函数计算,不太适合硬件实现.此外,A h r e n s l用每段为常数的分段函数作为覆盖函数.L e y d o l d基于r a t i o - o f - u n i f o r m s 的方法也是一个通用算法.还有一种近似的方法,其产生的随机数与指定分布的随机数具有相同的前四阶矩,但概率分布不一定相同.这里就不详细介绍了.3.2 我们的方法当前的通用算法的问题是效率不能任意提高,不够灵活. 通常产生每个所需随机数X需以较大的概率计算f ( x )等函数.我们认为在速度要求非常高的场合,计算f ( x )是不利的,尤其以硬件进行函数计算是十分不利的.针对己有通用算法的不足,我们提出了基于组合法的通用算法.主要目的是尽可能地减少三角、指数、对数等超越函数的计算,以便硬件实现.产生任意连续分布随机数的高效舍选算法本文提出一种通用算法,可视需要使效率接近1 , 而且f ( x ) 的计算概率可任意小. 这些优点的取得是以长的预处理时间为代价的.在需要产生大量随机样本的场合( 例如通信系统的误码率测试,可能需要数小时乃至数天的仿真时间) ,本算法将有很大的优势,尽管有看法认为只有能用简单代码实现的算法才会被经常使用.3.2.1 算法原理假定预定的连续概率密度函数f ( x ) 为单峰的( 这是实际的大多数情况) ,已知其峰值点为m .一般f ( x ) 不关于x =m 对称,如图2 -5 .我们假定f ( x ) 定义在有界的区间[ a , b ] 上( 上文说过,对正态分布这类定义区间无限的情况,我们把这个区间取得足够大就可以了) . 直线X=m把f ( x ) 曲线与X轴所围面积分为左右两部分,我们把左右两部分各等分为K份,一共得到2 K个曲边梯形.并用2 K个矩形各自覆盖相应的曲边梯形.我们的想法是利用舍选法的几何意义,分别在上述2 K个曲边梯形内均匀投点,从而使随机点在f ( x ) 曲线与x 轴所围的整个区域中均匀分布,这样即可产生f ( x ) 的抽样X . 而在曲边梯形内均匀投点可使用简单舍选法:先在各个矩形内均匀投点,再选出落于相应曲边梯形内的点. 这种投点法浪费的点只位于各个矩形的一角,显然效率大大高于简单舍选法.最为重要的是:随着K的增大,效率会不断提高.另外,只有当投点位于曲边梯形的曲边之下时,才需计算f ( x ) ,而且计算f ( x ) 概率是随着K的增加而减小的.我们每次“按概率”随机选中一个曲边梯形进行投点. 这需要两步完成:先选择左边还是右边,再于此边的K个曲边梯形中选择一个.这里的概率显然就是面积,这可以从以下的推导中看出来.为清晰起见,我们先阐述随机数的产生法,而把面积的均分这个预处理过程置于随后.3.2.2 算法推导令()mP f x dx -∞=⎰为左边面积.则左边各曲边梯形面积皆为 P / K ,右边各曲边梯形面积皆为( ( I -P ) / K . f ( x ) 可表为: 12111()()()K Ki i i i P P f x f x f x K K ==-=+∑∑ (4) 诸ji f ( x ) ( j = 1 , 2 ; i = 1 , 2 . . . k ) 皆为一腰为曲边的梯形形状的概率密度函数.依如下步骤可产生分布为f ( x ) 的一次抽样:S t e p l :产生一个随机自然数J ,使J 服从如下两点分布: P ( J = 1 ) = P , P ( J = 2 ) = 1 - P : S t e p 2 :产生一个随机自然数I , 使I 服从如下均匀分布律:P ( I = i ) = 1 / K , i = 1 , 2 . . . . K ;S t e p 3 : 用基本舍选法产生概率密度为f ( x ) 的随机数X .证明利用全概率公式,有: 2111211()()()(,)1(()())()Kj i K Ki i i i P x X x dx P J j P I i P x X x dx J j I i P P f x f x dx K K f x dx ====<≤+===<≤+∣==-=+=∑∑∑∑故x 服从 f ( x ) 分布.下面完整地描述这个方法:S t e p l( 产生J ) :S t e p l . l 产生[ 0 , 1 ] 上的均匀随机数U 1 ;S t e p 1 . 2若U 1 < P ,则返回J = 1 , 否则返回J = 2 ;S t e p 2( 产生I ) :S t e p 2 . l 产生 [ 0 , I ] 上的均匀随机数U 2 ;S t e p 2 . 2 21;I kU x =+⎢⎥⎢⎥⎣⎦⎣⎦表示不大于x 的最大整数.产生 ji f ( x ) 的样本需区别j = 1 与j = 2 两种情况. 图2 - 6 示出j = 2 时一 典型的ji f ( x ) , 用简单舍选法产生其抽样,覆盖函数为矩形. 首先产生一个[ 0 , R i ] 的均匀数, 如它属于[ 0 , R 1i -] 小无需再产生y 轴方向的均匀随机数,接受此均匀数即可;否则还需产生一个Y 轴方向的均匀随机数进行投点,那些落在曲边下方的点被接受,投在矩形右上角的点被舍弃.同理易得j = 1 时的产生法.整个S t e p 3 如下:S t e p 3( 产生X ) :i f J = =1{ l o o p :产生[ 0 , 1 ] 上的均匀随机数U 3 , W = ( L 0 - L 1 ) U 3 + L 1 : i f W> L 1i -,返回 X = W;e l s e { 产生[ O , l ] 上的均匀随机数V ;i f f ( W) - f ( L 1) < ( f ( L 1j - ) - f ( L 1 ) ) V 返回X = W; e l s e 舍弃W ,重复l o o p ;} }e l s e{ l o o p : 产生[ 0 , 1 ] 上的 均匀随机数U 3 , W = ( R 1 - R o ) U 3 + R o ; i f W< R 1i -,返回 X = W;e l s e {产生[ 0 , 1 ] 上的均匀随机数V ;i f f ( W) - f ( R 1) C ( f ( R 1I - ) - f ( R 1) ) V , 返回X = W; e l s e 舍弃W ,重复l o o p ;} }均匀随机数U 2 实际上可由U 1 变换得到, U 3 可由均匀数U2变换得到. 例如从U1 产生U 2 的方法是:当J = l 时, U 1 在[ 0 , P ] 上均匀分布, 故可令U 2 = U l / P ;当J = 2 时, U 1在[ P , 1] 上均匀分布, 故可令U 2 = ( U 1 - P ) / ( 1 - P ) . 从U 2 产生U 3 的方法是:当I = i 时, U 2 在 [ i / K , ( i + l ) / K ]上均匀分布, 故可令U 3 = K ( U 2 - i / K ) . 这样的做法节省了均匀随机数,增加了一些乘法和除法运算.对F P G A 等并行处理的硬件来说,产生均匀随机数是便宜的,除法运算是耗费的,所以我们不提倡减少均匀数的做法. 而对有C P U 的硬件来说, 减少均匀随机数意味着减少了过程调用,也许是值得的. 再介绍预处理过程.各分点需解下列递推方程求得:从i=1开始求解,直至i = K - 1 .这些方程可事先利用软件求解.3.2.3 算法性能分析影响随机数产生速度的主要因素之一是f ( x ) 的计算,故把产生每个抽样平均计算f ( x )的次数 ( 计算概率)做为一个性能指标.另外舍选法的平均效率也作为一个性能指标,这个指标反映了每产生一个随机数所需的均匀数个数.产生每个样点X 需计算f ( x ) 的平均概率P f 可利用全概率公式计算:其中10i i iL L L L ---的分母是左边第i 个曲边梯形的下底长,分子是下底与上底的差,这个比值就是在此曲边梯形内投点时计算f ( x ) 的概率.10i i i R R R R ---的意义相仿. 舍选法的平均效率” 可利用全概率公式计算:11()()11(1)()()L R KK i i L R A i A i P P K B i K B i η===+-∑∑ 诸(),(),(),()L L R R A i B i A i B i 分别表示左边各曲边梯形面积、左边各矩形面积、右边各曲边梯形面积和右边各矩形面积.在不同的K 值下,计算了算法用于产生正态分布、 指数分布、 瑞利分布三种标准分布时的上述两个性能参数.各个概率密度函数如下:正态分布:2())2x f x =- 指数分布:()x f x e -= 瑞利分布: 2()exp()48x x f x =- 结果如下图6 :左图反映出概率密度函 数的计算概率P f 随K 的增大而减小, 最终趋于零,例如当K = 1 0 2 4 时, P f 已 非常小;右图反映出 舍选法的平均效率随K 的 增加而提高, 最终趋于 1 , 也就是三个均匀随机数产生一个预期的随机数.我们可根据实际情况选择合适的K 值.3.3 正态分布的随机数的产生下面提出了一种已知概率密度函数的分布的随机数的产生方法,以典型的正态分布为例来说名任意分布的随机数的产生方法.如果一个随机数序列服从一维正态分布,那么它有有如下的概率密度函数:22()2()x f x μσ--=参考文献:[1] 肖云茹.概率统计计算方法[M].天津:南开大学出版社,1994.[2]程兴新.曹敏.统计计算方法EM3.北京:北京大学出版社,1989.[3]王永德等.随机信号分析基础.北京:电子工业出版社,2 0 0 3.[4]皇甫堪等. 现代数字信号处理. 国防科技大学电子科学与工程学院内部印刷,2 0 0 2.。

论述随机技术的类别及特点

论述随机技术的类别及特点

论述随机技术的类别及特点随机技术是一类重要的计算机科学技术,用于生成和处理随机数。

随机技术广泛应用于密码学、模拟、游戏、实验设计等领域。

下面将从生成随机数的方法、随机性的评价以及随机性的应用等方面,对随机技术的类别及其特点进行论述。

首先是随机数生成方法的分类。

随机数生成方法主要可以分为真随机数生成和伪随机数生成两类。

1.真随机数生成:真随机数是通过测量无序事件的结果来生成的,在时间、空间、电子噪声等物理过程中收集的信号可以用来产生真正的随机数。

真随机数的特点是具有绝对的不可预测性和不确定性。

常见的真随机数生成方法包括物理过程法(如测量量子态、放射性衰变过程)、电子噪声法(如利用硬件电子器件中的电子噪声)等。

2.伪随机数生成:伪随机数是通过算法生成的数列,是通过其中一种确定的算法和初始值来生成的。

伪随机数的特点是可以重复,但具有良好的随机性。

常见的伪随机数生成方法包括线性同余法、梅森旋转算法、拉斯维加斯算法等。

其次是随机性的评价。

对于随机数的质量,可以通过以下几个方面进行评价:1.均匀性:生成的随机数在整个范围内是均匀分布的,不存在明显的偏差或周期性。

2.独立性:生成的随机数之间是独立的,一个随机数的产生对其他随机数的产生没有影响。

3.唯一性:生成的随机数序列是唯一的,不会重复出现。

4.随机性测试:通过一系列统计学方法和计算机程序进行随机性测试。

常见的随机性测试方法包括频数测试、序列测试、均匀分布测试、相关性测试等。

最后是随机技术的应用。

1.密码学:随机数是密码学中的基础,用于产生密钥、初始化向量等重要参数,保障密码系统的安全性。

2.模拟:随机数在模拟中起到重要作用,用于模拟真实世界中的不确定性和随机性事件,如人口统计学模型、风险评估模型等。

3.游戏:随机数在游戏中的应用非常广泛,用于生成随机的游戏结果、随机事件的触发等,增加游戏的变化性和娱乐性。

4.实验设计:随机数可以用于实验设计中的随机分组、随机分配等,保证实验的随机性和公正性。

随机数法

随机数法

用“线性同余法”产生随机数,公式如下:x=(x*29+7) mod 1000为什么是29和37?为什么用MOD ?mod 1000的意思就是如果超过1000就把该数减去1000.还可以打个比方,x mod 12 代表的是钟表刻度,它的值永远在0..11之间。

这个概念在数学里叫”同余”。

一般:在计算机上可以用物理方法来产生随机数,但价格昂贵,不能重复,使用不便。

另一种方法是用数学递推公式产生,这样产生的序列与真正的随机数序列不同,所以称为伪随机数或伪随机序列,只要方法和参数选择合适,所产生的伪随机数就能满足均匀性和独立性,与真正的随机数具有相近的性质。

产生随机数的方法是先用一定的方法产生[0,1]均匀分布的随机数,然后通过一个适当的变换就可以得到符合某一概率模型的随机数。

常用的产生[0,1]均匀分布的随机数的方法有乘同余法和混合同余法。

用乘同余法产生[0,1]均匀分布的随机数递推公式为:Xi=λxi-1(modM) (i=1,2,……n) (2-13)式中λ为乘子,M为模,当i=1时,xi=xi-1为初始参数,x0可取1或任意奇数。

利用上式算出序列x1,x2……后再取γ i=xi / M (2-14)即为第i个[0,1] 均匀分布的随机数。

混合同余法又称线性同余法,产生随机数的递推公式为:Xi=(λxi-1+C)(modM) (i=1,2,……n) (2-15)γ i=xi / M (2-16)根据概率论可知,[0,1]均匀分布的随机变量ζ与其它的变量ζ之间存在如下的重要关系:η=F-1(ζ) (2-17)式中F-1( . )为变量η的分布函数。

对于F-1( . )不能表示为显函数的情况,可采用线性插值法变换,此时η与ζ的关系,可用图2-6来表示。

在[0,1]均匀分布随机变量轴上,在0-1之间可划成m等份。

给定分布的概率分布曲线也同时被划分成m段,将每一段曲线用折线来代替就可以得到对应于[0,1]均匀分布随机数γi的给定分布的随机数xi。

实验研究中的随机与非随机分配的对比分析

实验研究中的随机与非随机分配的对比分析

实验研究中的随机与非随机分配的对比分析在科学研究领域,特别是实验研究中,如何将研究对象分配到不同的实验组和对照组是一个至关重要的环节。

其中,随机分配和非随机分配是两种常见的分配方式,它们各有特点和适用场景,同时也存在着显著的差异。

随机分配,顾名思义,是按照随机的原则将研究对象分配到不同的组中。

这意味着每个研究对象都有相同的概率被分配到任何一组,不受研究者主观意愿、研究对象的特征或其他因素的影响。

这种方式的最大优点在于能够最大程度地减少偏差和混杂因素的影响。

例如,在一项药物疗效的研究中,如果采用随机分配,那么患者的年龄、性别、病情严重程度等各种可能影响药物效果的因素,在不同组中会呈现出相对均衡的分布。

这样,当我们比较不同组之间的药物疗效时,就可以更有信心地认为观察到的差异是由于药物本身的作用,而不是由于患者初始特征的不同所导致。

随机分配的实现通常借助于随机数生成器或者特定的随机化方法,如简单随机、分层随机等。

简单随机就是完全随机地进行分配,而分层随机则是先根据某些重要的特征(如年龄层、疾病阶段等)对研究对象进行分层,然后在每一层内进行随机分配。

然而,随机分配并非在所有情况下都是可行或理想的。

有时候,由于实际操作的限制、伦理问题或者研究的特殊性质,我们可能不得不采用非随机分配的方式。

非随机分配方式多种多样,常见的有方便抽样、目的性抽样等。

方便抽样是基于研究对象的可得性和便利性进行选择,例如在某个特定的医院科室、某个时间段内选择研究对象。

目的性抽样则是根据研究者的特定目的,有针对性地选择具有某些特征的研究对象。

非随机分配的一个明显缺陷是容易引入选择偏差。

由于不是随机选择,可能导致不同组之间在某些重要特征上存在系统性的差异,从而影响研究结果的可靠性和有效性。

以一项关于某种教育方法对特定年龄段学生学习效果的研究为例,如果采用方便抽样,只在一所教学资源较好的学校选取学生,那么研究结果可能无法推广到其他教学条件不同的学校。

21-22版:3.3.2 均匀随机数的产生(创新设计)

21-22版:3.3.2 均匀随机数的产生(创新设计)

3.3.2均匀随机数的产生学习目标 1.了解随机数的意义(重点).2.会用模拟方法(包括计算器产生随机数进行模拟)估计概率(重点).3.理解用模拟方法估计概率的实质(难点).知识点均匀随机数1.均匀随机数的概念在随机试验中,如果可能出现的结果有无限多个,并且这些结果都是等可能发生的,我们就称每一个结果为试验中全部结果所构成的区域上的均匀随机数.2.均匀随机数的产生(1)计算器上产生[0,1]的均匀随机数的函数是RAND函数.(2)Excel软件产生[0,1]区间上均匀随机数的函数为“RAND()”.3.用模拟的方法近似计算某事件概率的方法(1)试验模拟的方法:制作两个转盘模型,进行模拟试验,并统计试验结果.(2)计算机模拟的方法:用Excel软件产生[0,1]区间上均匀随机数进行模拟.注意操作步骤.4.[a,b]上均匀随机数的产生利用计算器或计算机产生[0,1]上的均匀随机数x1=RAND,然后利用伸缩和平移交换,x=x1*(b-a)+a就可以得到[a,b]内的均匀随机数,试验的结果是[a,b]上的任何一个实数,并且任何一个实数都是等可能出现的.【预习评价】均匀随机数与整数值随机数有何异同?提示(1)相同点:随机产生的随机数,在一定的“区域”长度上出现的几率是均等的.(2)不同点:整数值随机数是离散的单个整数值,相邻两个整数值随机数的步长为1,而均匀随机数是小数或整数,是连续的.题型一用随机模拟法估计长度型几何概型的概率【例1】取一根长度为5 m的绳子,拉直后在任意位置剪断,用均匀随机模拟方法估计剪得两段的长都不小于2 m的概率有多大?解设“剪得两段的长都不小于2 m”为事件A.方法一步骤:(1)利用计算机产生n个0~1之间的均匀随机数,x1=RAND.(2)作伸缩变换:x=x1*(5-0),转化为[0,5]上的均匀随机数.(3)统计出[2,3]内均匀随机数的个数m.(4)则概率P(A)的近似值为m n.方法二步骤:(1)做一个带有指针的转盘,把圆周五等分,标上刻度[0,5](这里5和0重合).(2)固定指针转动转盘,或固定转盘旋转指针,记下指针在[2,3]内(表示剪断绳子位置在[2,3]范围内)的次数m及试验总次数n.(3)则概率P(A)的近似值为m n.规律方法用随机模拟方法估计长度型几何概型的概率的步骤(1)利用计算机产生一组[0,1]上的均匀随机数x1=RAND.(2)经过平移和伸缩变换x=(b-a)x1+a,得到一组[a,b]上的均匀随机数.(3)统计出试验总次数N和满足所求概率事件的随机数个数N1.(4)计算频率f n(A)=N1N,即为所求概率的近似值.【训练1】把[0,1]内的均匀随机数转化为[-2,6]内的均匀随机数,需实施的变换为()A.y=8*xB.y=8*x+2C.y=8*x-2D.y=8*x+6解析根据平移和伸缩变换,y=[6-(-2)]*x+(-2)=8*x-2.答案C题型二用随机模拟法估计面积型几何概型的概率典例迁移【例2】解放军某部队进行特种兵跳伞演习,如图所示,在长为16 m,宽为14 m的矩形内有小、中、大三个同心圆,其半径分别为1 m,2 m,5 m.若着陆点在圆环B内,则跳伞成绩为合格;若着陆点在环状的阴影部分,则跳伞成绩为良好;若跳伞者的着陆点在小圆A内,则跳伞成绩为优秀;否则为不合格,若一位特种兵随意跳下,假设他的着陆点在矩形内,利用随机模拟的方法求他的成绩为良好的概率.解设事件A表示“该特种兵跳伞的成绩为良好”.(1)利用计算器或计算机产生两组[0,1]上的均匀随机数,a1=RAND,b1=RAND.(2)经过伸缩和平移变换,a=16a1-8,b=14b1-7,得到[-8,8]与[-7,7]上的均匀随机数.(3)统计满足-8<a<8,-7<b<7的点(a,b)的个数N.满足1<a2+b2<4的点(a,b)的个数N1.(4)计算频率f n(A)=N1N即为所求概率的近似值.【迁移】若例2的条件不变,如何利用随机模拟的方法求该特种兵的成绩为不合格的概率?解设事件C表示“该特种兵跳伞的成绩不合格”.(1)利用计算器或计算机产生两组[0,1]上的均匀随机数,a1=RAND,b1=RAND.(2)经过伸缩和平移变换,a=16a1-8,b=14b1-7,得到[-8,8]与[-7,7]上的均匀随机数.(3)统计满足-8<a<8,-7<b<7的点(a,b)的个数N,满足a2+b2>25的点(a,b)的个数N1.(4)计算频率f n(C)=N1N,即为所求概率的近似值.规律方法用随机模拟法估计面积型几何概型的概率的步骤与用随机模拟法估计长度型几何概型的概率的步骤基本相同,但要利用计算器或计算机产生两组[0,1]上的均匀随机数.题型三用随机模拟的方法计算不规则图形的面积【例3】利用随机模拟方法计算由y=1和y=x2所围成的图形的面积.解以直线x=1,x=-1,y=0,y=1为边界作矩形,(1)利用计算器或计算机产生两组[0,1]上的均匀随机数,a1=RAND,b=RAND;(2)进行平移和伸缩变换,a=2(a1-0.5);(3)数出落在阴影内的样本点数N1,用几何概型公式计算阴影部分的面积.例如做1 000次试验,即N=1 000,模拟得到N1=698,所以P=N1N=阴影面积矩形面积=6981 000,即阴影面积S=矩形面积×6981 000=2×6981 000=1.396.规律方法用随机模拟方法计算不规则图形面积的步骤(1)把已知图形放在平面直角坐标系中,将图形看成某规则图形(长方形或圆等)的一部分,并用阴影表示.(2)利用随机模拟方法在规则图形内任取一点,求出落在阴影部分的概率P(A)=N1 N.(3)设阴影部分的面积是S,规则图形的面积是S′,则有SS′=N1N,解得S=N1N S′,则所求图形面积的近似值为N1 N S′.【训练3】利用随机模拟的方法近似计算图中阴影部分(y=2-2x-x2与x轴围成的图形)的面积.解(1)利用计算机产生两组[0,1]上的均匀随机数,a1=RAND,b1=RAND;(2)经过平移和伸缩变换a=a1*4-3,b=b1*3,得到一组[-3,1],一组[0,3]上的均匀随机数;(3)统计试验总次数N和落在阴影部分的点数N1(满足条件b<2-2a-a2的点(a,b)个数);(4)计算频率N1N就是点落在阴影部分的概率的近似值;(5)设阴影部分面积为S.由几何概型概率公式得点落在阴影部分的概率为S 12.即S12≈N1 N.所以S≈12N1N即为阴影部分面积的近似值.课堂达标1.用均匀随机数进行随机模拟,可以解决()A.只能求几何概型的概率,不能解决其他问题B.不仅能求几何概型的概率,还能计算图形的面积C.不但能估计几何概型的概率,还能估计图形的面积D.最适合估计古典概型的概率解析很明显用均匀随机数进行随机模拟,不但能估计几何概型的概率,还能估计图形的面积,但得到的是近似值,不是精确值,用均匀随机数进行随机模拟,不适合估计古典概型的概率.答案C2.用随机模拟方法求得某几何概型的概率为m,其实际概率的大小为n,则()A.m>nB.m<nC.m=nD.m是n的近似值解析随机模拟法求其概率,只是对概率的估计.答案D3.设x是[0,1]内的一个均匀随机数,经过变换y=2x+3,则x=12对应变换成的均匀随机数是()A.0B.2C.4D.5解析当x=12时,y=2×12+3=4.答案C4.在线段AB上任取三个点x1,x2,x3,则x2位于x1与x3之间的概率是()A.12 B.13 C.14 D.1解析 因为x 1,x 2,x 3是线段AB 上任意的三个点,任何一个数在中间的概率相等且都是13.答案 B5.如图所示,向边长为2的大正方形内投飞镖,求飞镖落在中央边长为1的小正方形中的概率.(假设飞镖全部落在大正方形内)解 用几何概型概率计算公式得P =S 小正方形S 大正方形=14.用计算机随机模拟这个试验,步骤如下:第一步,用计数器n 记录做了多少次投飞镖的试验,用计数器m 记录其中有多少次投在中央的小正方形内,设置n =0,m =0;第二步,用函数RAND( )*4-2产生两个[-2,2]上的均匀随机数x ,y ,x 表示所投飞镖的横坐标,y 表示所投飞镖的纵坐标;第三步,判断(x ,y )是否落在中央的小正方形内,也就是看是否满足|x |<1,|y |<1,如果是,则m 的值加1,即m =m +1,否则m 的值保持不变;第四步,表示随机试验次数的计数器n 加1,即n =n +1,如果还需要继续试验,则返回步骤第二步继续执行,否则,程序结束.程序结束后飞镖投在小正方形内的频率m n 作为所求概率的近似值.课堂小结1.在区间[a ,b ]上的均匀随机数与整数值随机数的共同点都是等可能取值,不同点是均匀随机数可以取区间内的任意一个实数,整数值随机数只取区间内的整数.2.利用几何概型的概率公式,结合随机模拟试验,可以解决求概率、面积、参数值等一系列问题,体现了数学知识的应用价值.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

收稿日期 :1999 - 04 - 27
△本文得到国家自然科学基金和广东省自然科学基金资助
3 现为华中理工大学生物工程系博士研究生 3 3 中山医科大学
・59 ・
Journal of Mathematical Medicine Vol. 13 NO. 1 2000
构知识的人 , 都能很方便地转换成能上机运行的程序 , 有很大 的灵活性与很强的实用性 {get - exp - random}
例2 产生服从正态分布的随机数
) 都可以由标准的正态分布 X ’ 正态分布 XN ( a ,σ N ( 0 , 1)
经过变换 X = a + σ X’ 得到 , 在此只讨论服从标准正态分布的 随机数的产生方法 。标准正态分布的密度函数为 :
常用的计算机高级程序设计语言 ,大多提供了产生在 [ 0 ,
1 ] 区间内连续均匀分布的独立随机数 r 的函数 。若将产生的
随机数作简单的变换 X = a + ( b - a ) r , 就能得到在区间 [ a ,
b]上均匀分布的随机数 X 。如果与取整或舍入函数结合运
用 , 还可得到离散均匀分布的随机数 , 给计算机模拟提供了方 便 。但在很多情况下进行计算机模拟需要用到按某些特定规 作 。因此用光卡作为医疗保健卡而用于异地的会诊将十分方 便 ,如荷兰阿姆斯特丹医学中心对肾病患者和器官移植病人 使用光卡记录定期透析情况及重大处理措施 , 病人可持卡旅 行异地透析 。 光卡的第三个特点就是其使用专利技术制造 , 可防止伪 造 ,并可利用包括生物测量学技术在内的多种加密技术如硬 件加密和软件加密技术 。但卡被盗和密码口令被破译的可能 使指纹加密可能是最好的加密方式 , 插入一个载有指纹图像 模式的卡后计算机可以十分精确地测定持卡人的指纹和卡上 模式的匹配程度 。利用人的指纹作为卡持有者的标识 ID 而 用于医疗 、 保健卡等领域会进一步提高其安全验证能力 。如 在西班牙 ,作为社会安全 ID 卡而使用的智能卡就提供了一种 通过指纹加以验证的医疗福利方法 ,预计到 2001 年将有 4 千 万张这样的卡被使用 。
x= F
- 1
此过程每调用一次能产生两个相互正交的标准正态分布 随机数 。
的均匀随机数 , 故 ( 5) 式还可以简化为 :
1 ( ( 6) x= αln r) 假定计算机高级语言已提供了产生在 [ 0 , 1 ] 区间内均匀
参 考 文 献
)1生 1 刘向明等 1 离子通道开放状态检测法的计算机模拟研究 ( Ⅰ
难 , 但可以用以下的变换来产生随机数 。 假定 r1 与 r2 是 [ 0 , 1 ] 区间的两个独立的均匀分布随机 数 , 现将其作如下的变换 , 令
x1 = x2 =
其中 , r 为 ( 1) 式的解 , 即 r = φ- 1 ( x) = Ψ ( x ) 在特殊情况下 , 若 R 是在 [ 0 , 1 ]区间内的均匀分布的连续 随机变量 , 那么 R < r 的概率 P ( R < r) = r 。此时 , ( 2) 式可以 简化为
1 问题的提出
律分布的非均匀随机数 。例如 , 在离子通道门控模型的模拟 研究中 , 就经常要用到服从指数分布 、 对数分布 、 正态分布 、 普 畦松分布等非均匀分布的随机数 。这时可以在源程序中编写 一个函数或过程来产生 。我们在近年来所进行的计算机模拟 研究工作 [ 1 , 2 ] 中 , 大量使用了非均们分布的随机数 , 获得成功 。 由于离散随机数可以由连续随机数通过取整或舍入等途径转 换而得 , 本文只侧重介绍非均匀分布连续随机数的产生原理 和应用实例 , 并给出了用类 PASCAL 语言 [ 3 ] 编写的相应的函数 和过程 。掌握了任何一种计算机高级语言编程技术和数据结 安全认证能力 ,防止欺诈 ,而且也可减少医疗事故的发生及为 追究医疗事故的法律责任提供依据 。随着光卡 、 光卡读写器 及其他与光卡读写有关的外围设备如指纹扫描仪价格的降 低 ,嵌入指纹识别技术的光卡会在医学领域中获得相应的应 用。
物数学学报 ,1996 ,11 (2) :6064.
)1生 2 胡性本等 1 离子通道开放状态检测法的计算机模拟研究 ( Ⅱ
分布的随机数的函数 RND ( 0) , 则根据 ( 6) 式可以写出产生服 从指数分布的随机数的类 PASCAL 语言的函数如下 :
FUNC get - exp - random ( alpha :real) :real ; { 产生服从指数分布的随机数 ,值参 alpha 为比例参数} get - exp - random = - ln ( RND (0) ) / alpha ;
P( X < x) = P( F - 1 ( R) < x) = P( R < F( x) )
1 - 1 x2 [ tg ( ) + C ] 2π x1 ( 9) 式中的 C 为常数 。由此可导出其密度函数为 :
r2 =
2 2
因为 R 是在 [ 0 , 1 ]区间上的均匀分布的连续随机变量 , 故
P ( R < F ( x) ) = F ( x) , 即 F
4 总结
参 考 文 献
1 Carol H. Fancher. Smart Card. Scientific American. August 1996 ,2829. 2 Gunjan Sinha. The Right T ouch. Scientific American. August 1996 ,20. 3 生物测量学技术和电子现金将风靡’ 981 国际电子报 ,1998 ,71 4 指纹加密技术有望成为计算机卫士 1 计算机世界报 ,1997 ,71 5 沪上首发 “金苗卡” 1 计算机世界报 ,1997 ,321 6 华南资迅与 COGENT 公司携手共推指纹识别系统 1 计算机世界报 , 1997 ,341 7 青松系列身份识别系统推出 1 计算机世界报 ,1997 ,361 8 张家琦 1 新一代卡片存储器 — 光卡 1 计算机世界报 ,1998 ,71 9 采用指纹识别技术的保管箱业务 1 国际电子报 ,1998 ,241
- 1
( r) 具有分布函数 F 。
x1 x2 1 ) ( 10) exp ( 2 2 π 2 比较 ( 10) 式与 ( 7) 式 , 可知 X1 与 X2 是两个相互独立的服 f ( x1 , x2 ) =
( 4) 式表明 , 要产生一个服从某种分布的随机数 , 可以先
从正态分布的随机变量 , 因而 ( 8) 式是与 ( 4) 相当的据以产生 随机数的表达式 。由此可以写出产生服从标准正态分布随机 数的类 PASCAL 语言的过程如下 :
F( x) = F ( r) = r ( 3) ( 4)
cos2π r2 - 2ln r1 ・ - 2ln r1 ・ sin2π r2 1 2 ( x + x2 2) ] 2 1
( 9) ( 8)
再将其反变换为 :
r1 = exp [ -
其反函数
x= F
- 1
( r)
具有分布函数 F , 现予以证明 : 因为分布函数是单调递增函 数 , 其反函数存在 。由概率知识可知 , 对任意实数 X , 有
生物测量技术和智能卡 、 光卡技术是 1998 年的十大热点 技术之二 ,指纹识别技术用于身份认证在公安上使用最早 ,其 次为金融上 ,如保管箱业务 、 金融指纹 IC 卡等 , 同样在作为医 疗、 保健卡的智能卡 、 光卡中嵌入指纹加密技术是未来医疗卫 生系统实现医院管理自动化及网络化的趋势 ,不仅会提高其
f ( x) =
-α x α ・ e 当 x >0时
递随机数}
pi : = 3. 14159265 ; { 赋π 值} r1 : = RND (0) ; r2 : = RND (0) ; s : = SQRT( - 2 3 ln ( r1) ) ; { 中间变量赋值} x1 : = s 3 cos (2 3 pi 3 r2) ; x2 : = s 3 sin (2 3 pi 3 r2) ; { 正态分布随机数赋给变量参数} ENDP ; {gauss}
( 湖北职工医学院 荆州 434000)
摘 要 非均匀分布随机数在进行计算机模拟研究中有重要作用 , 但计算机高级语言通常都只提供产生均匀分布随机数的函 数 ,给研究工作带来困难 。该文提出的方法 ,较好地解决了这一问题 ,有很强的适用性 。 关键词 非均匀分布随机数 计算机模拟 程序设计 3
数理医药学杂志 2000 年第 13 卷第 1 期 文 章 编 号 :100424337 (2000) 0120059202 中图分类号 :O 24211
非均匀分布随机数的产生及其在 计算机模拟研究中的应用 △
胡性本 刘向明 3 方积乾 3
物数学学报 ,1997 ,11 (5) :450454.
3 严蔚敏等 1 数据结构 1 第二版 1 北京 : 清华大学出版社 ,1995 ,1315.
收稿日期 :1999 - 03 - 10
・60 ・
PROC gauss (VAR x1 , x2 :real) ; {产生服从正态分布的随机数对 ,用变量参数 x1 与 x2 传
求出其分布函数的反函数的解析式 , 再将一个在 [ 0 , 1 ] 区间内 的均匀随机数的值代入其中计算就可以了 。
3 应用实例
例1 产生密度函数满足指数分布
0 当 x≤ 0时 的随机数 , 其中 α> 0 。
因为
e Θα・
0
x
-α x
dx = 1 - e -α x
α x
, 故分布函数为 :
F( x) =
1- e
当 x >0时
0 当 x≤ 0时
( r) = -
由 ( 4) 式可得
1 ( ) ( 5) αln 1 - r 当 r 为 [ 0 , 1 ]区间内的均匀随机数时 , 1 - r 也是 [ 0 , 1 ] 区间内
相关文档
最新文档