如何优化JavaScript随机正常生成算法

时间:2017-09-22 23:48:47

标签: javascript algorithm performance statistics

这是我的代码。此函数返回一个遵循标准正态分布的数字。

var rnorm = function() {
  var n = 1000;
  var x = 0;
  var ss = 0;
  for (var i = 0; i < n; i++) {
    var a = Math.random();
    x += a;
    ss += Math.pow(a-0.5, 2);
  }
  var xbar = x/n;
  var v = ss/n;
  var sd = Math.sqrt(v);  

  return (xbar-0.5)/(sd/Math.sqrt(n));
};

它很简单并且利用了中心极限定理。这是一个jsfiddle运行这个东西100,000次并打印一些信息到控制台。

https://jsfiddle.net/qx61fqpn/

它看起来是正确的(我还没有编写代码来绘制直方图)。正确的比例出现在(-1,1),( - 2,2),( - 3,3)和更远之间。样本均值为0,var&amp; sd为1,偏斜为0,峰度为3。

但它有点慢。

我打算使用这个函数编写更复杂的函数作为构建块(如chi-sq分布)。

我的问题是:

如何重写此代码以提高其性能?我在说速度。现在,有人用一些JavaScript和统计知识知道我正在做什么(或者试图做什么 - 如果我做错了的话)。

0 个答案:

没有答案