在没有均匀随机数发生器的情况下生成高斯随机数

时间:2016-01-21 09:00:41

标签: algorithm random gaussian

我知道许多基于某些算法,物理系统等的统一随机数发生器(RNG)。最终,所有这些导致均匀分布的随机数。知道是否存在高斯RNG,即算法或其他东西产生高斯随机数,这是有趣且重要的。更准确地说,我想说我不想使用Box-Muller或Marsaglia极地方法等变换来从统一RNG中获得高斯。我感兴趣的是,如果有一些纸张,算法甚至想法创建高斯随机数而不使用任何统一的RNG。只是说我们假装我们不知道存在统一随机数生成器。

2 个答案:

答案 0 :(得分:1)

正如在答案/评论中已经指出的那样,凭借CLT,任何iid随机数的总和可以被制成一些合理的高斯。如果传入流是统一的,这基本上是Bates distribution。 Ami Tavory的回答几乎相当于伪装使用贝茨。您可以查看密切相关的Irwin-Hall distribution,在n=12或更高版本,它们看起来很像高斯。

有一种方法在实践中使用,并且不依赖于U(0,1) - Wallace方法的转换(Wallace,CS 1996."用于正态和指数变化的快速伪随机发生器。&# 34; ACM数学软件交易。),或高斯池方法。我建议阅读说明here并查看它是否符合您的目的

答案 1 :(得分:0)

正如其他人所说,有些不清楚你的动机是什么,所以我不确定以下是否能回答你的问题。

尽管如此,有可能在没有特定公式转换你提到的统一RNG的情况下生成(近似)。

与任何RNG一样,我们必须有一些随机性源(或伪随机性)。因此,我假设存在一些无限的二进制位序列,这些二进制位独立地同样可能是0或1(注意,可以反驳这是一个统一的离散二进制RNG,所以我不确定这是否答案你的问题)。

选择一些大的固定 n 。对于RNG的每次调用,生成 n 这样的位,将它们相加为 x ,并返回

(2 x - 1)/√n

de Moivre–Laplace theorem这是正常的,平均值为0,方差为1。