仅显示以下 2 篇带「圆周率」关键字的文章。 返回词云  或  查看全部文章

生成任意长度的圆周率

2016-04-25 by Dron

周末,闲来无事折腾了一个任意长度的圆周率 生成器,代码十分好懂不解释了(百行未压缩,自己读),原理见 梅钦类公式

这是我写过的第三版与 PI 相关的代码。

第一版的博文在百度空间(百度空间已经倒闭看不到了),根据正方形与内接正圆的比值为 4:PI 抽随机点演算;第二版见《用 JavaScript 演算圆周率 PI(二)》。前两版均受浮点计算精度限制,只有现在这版是可以生成任意长度的,不过长度越长,计算起来越慢,测试需谨慎。

(本文完)

用 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);