Nilakantha 级数:
- 从3开始依次交递加、减以4为分子、三个连续整数乘积为分母的分数.
- 每次迭代时3个连续整数中的最小整数是上次迭代时三个整数中的最大整数。
- 然后经过反复计算10万次,则可以得到精确到小数点后12位的Pi近似值.
let pi = 3 | |
let ADD = 1 | |
let SUB = 2 | |
let OP = ADD | |
for (let i = 2; i < 100000; i +=2 ){ | |
if (OP == ADD) { | |
pi += 4 / (i * (i + 1) * (i + 2)) | |
OP = SUB | |
} else { | |
pi -= 4 / (i * (i + 1) * (i + 2)) | |
OP = ADD | |
} | |
} | |
console.log(pi) |
local pi = 3 | |
local ADD, SUB = 1, 2 | |
local OP = ADD | |
for i = 2, 100000, 2 do | |
if OP == ADD then | |
pi = pi + 4 / (i * (i + 1) * (i + 2)) | |
OP = SUB | |
else | |
pi = pi - 4 / (i * (i + 1) * (i + 2)) | |
OP = ADD | |
end | |
end | |
print(pi) |
#!/usr/bin/python3 | |
pi = 3 | |
ADD, SUB = 1, 2 | |
OP = ADD | |
for i in range(2, 100000, 2): | |
if OP == ADD : | |
pi += 4 / (i * (i + 1) * (i + 2)) | |
OP = SUB | |
else: | |
pi -= 4 / (i * (i + 1) * (i + 2)) | |
OP = ADD | |
print(pi) |