通过算法生成的随机数是“伪随机”的,也就是说,在设定好第一个数之后,后面的数字的序列是确定的,并且经过一个非常大的循环会回到第一个数的状态,然后周而复始。显然,摇号、抽奖的程序是不能通过伪随机数来实现的。现实中常常基于某种热噪声来实现真正的随机数。假定某热噪声是标准正态分布,那么能否将它转换成(0,1)区间上的均匀分布______?
忽略测量和计算误差,可以转换为(0,1)区间上的均匀分布
答案: A
http://www.zhihu.com/question/25111423
方法1:
生成两个独立的正太分布变量Z0,Z1,然后arctan(z0/z1)/(2pi)+0.5,可以生成0-1均匀分布的变量
arctan(z0/z1)的最大值为pi,最小值为-pi
其实不用计算:熟知生成二维标准正态分布的方法就是取两个独立的标准正态分布变量X和Y放在一起(X, Y)就行了,然后二维标准正态分布在直角坐标系里有各向同性,也就是(X, Y)这个点所指的方向和X轴(或者任何一个给定方向)的夹角是均匀分布的。
方法2:
若 服从正态分布,则
服从[0,1]间的均匀分布,其中
是正态分布函数的cumulative distribution function。
对于任何的随机变量,如果已知其分布,均可以生产均匀分布。
设随机变量为, 累积分布为
.因为随机变量的函数也是随机变量,所以
也是随机变量。现在来求其分布,
,考虑到累积函数的值域,其为[0, 1]上的均匀分布。
其实这个是利用了 sklar‘s 定理 的引理(Inverse Sampling Theorem) 只需利用正态分布函数的CDF,以及满足正态分布的随机变量X,即可生成一个满足均匀分布的随机变量。
方法如下:(就假设最简单的标准正态分布的情形)
设标准正态分布函数的CDF为F(x),随机变量X服从标准正态分布
那么 定义 随机变量 Y=F(X), Y即服从[0,1]上的均匀分布