随机高斯函数的时间复杂度

Time complexity of Random Gaussian Function

本文关键字:时间复杂度 函数 高斯 随机      更新时间:2023-10-16

我已经在C++中创建了一个交叉熵最小化方法的实现,它引用了给定的Ruby代码http://www.cleveralgorithms.com/nature-inspired/probabilistic/cross_entropy.html

我无法理解随机高斯函数是如何与正态分布相关的,以及它到底在做什么。此外,我无法找出这个函数的复杂性。请帮我做这两件事。

    double random_gaussian(double mean , double stdev)
    {
          double u1,u2,w;
          do {
            u1 = 2*((double)rand()/RAND_MAX) - 1;
            u2 = 2*((double)rand()/RAND_MAX) - 1;
            w = u1*u1 + u2 * u2;
          } while( w >= 1 );
          w = sqrt(( -2.0 * log(w ))/w);
          return mean + ( u2* w ) * stdev;
    }

这是C++代码http://pastebin.com/Q4c73Kdi。该程序用于求解AX=B,并且运行良好。

do...while块在带角的正方形中生成一个点(±1,±2),直到该点适合以原点为中心的半径为1的圆。期望的迭代次数是面积比;,或在big-O表示法中的O(1)。

至于过程如何与高斯分布相关,这是Box-Muller变换的一个应用。这是另一个页面,其中也包含您的代码。