用 JavaScript 演算圆周率 pi(二)
2011-07-03 by Dron
之前我在百度空间上发表过一篇文章《用 JavaScript 演算圆周率 pi》,用的是面积的办法,涉及到随机点。而计算机中的随机数是通过随机种子产生的,并不是真正意义上的随机数,我们称它为 伪随机数。伪随机数的缺限是在足够大的样本当中,无法满足均匀分布。因此通过随机点的办法来演算圆周率并不能获得足够准确的结果。
我后来查找圆周率的相关资料发现,圆周率可以由很多个公式计算出来,下面列举两个:
pi * pi = 6 * (1 + 1/4 + 1/9 + 1/16 + 1/25 + ...)
pi * pi = 8 * (1 + 1/9 + 1/25 + 1/49 + 1/81 + ...)
以后者为例,于是我们又可以用如下方法来演算 pi,当然仅研究用,并无实际用途:
var n = -1;
var p = 0;
var pi;
setInterval(function(e){
n += 2;
p += 1 / n / n;
pi = Math.sqrt(8 * p);
document.body.innerHTML = pi;
}, 1);