正态分布可以生成均匀分布吗?

通过算法生成的随机数是“伪随机”的,也就是说,在设定好第一个数之后,后面的数字的序列是确定的,并且经过一个非常大的循环会回到第一个数的状态,然后周而复始。显然,摇号、抽奖的程序是不能通过伪随机数来实现的。现实中常常基于某种热噪声来实现真正的随机数。假定某热噪声是标准正态分布,那么能否将它转换成(0,1)区间上的均匀分布______?

忽略测量和计算误差,可以转换为(0,1)区间上的均匀分布

无法转换为(0,1)区间上的均匀分布
信息不足,无法判断
借助伪随机数生成算法可以转换为(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:

X 服从正态分布,则 Y=\Phi(X) 服从[0,1]间的均匀分布,其中\Phi是正态分布函数的cumulative distribution function。 

对于任何的随机变量,如果已知其分布,均可以生产均匀分布。
设随机变量为X, 累积分布为F_X.因为随机变量的函数也是随机变量,所以F_X(X)也是随机变量。现在来求其分布,P\{F_X(X) \leq a\} = P\{X \leq F^{-1}_X(a)\}=F_X(F^{-1}_X(a))=a,考虑到累积函数的值域,其为[0, 1]上的均匀分布。  

其实这个是利用了 sklar‘s 定理 的引理(Inverse Sampling Theorem) 只需利用正态分布函数的CDF,以及满足正态分布的随机变量X,即可生成一个满足均匀分布的随机变量。
方法如下:(就假设最简单的标准正态分布的情形)
设标准正态分布函数的CDF为F(x),随机变量X服从标准正态分布
那么 定义 随机变量 Y=F(X), Y即服从[0,1]上的均匀分布

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值