
Lv.1
签名:一枚被封藏在历史中的屑?
在 【氵】无用代码:计算圆周率 中回复
Math.PI = 3.喵9793;
function pi2(a) {/*在第28次循环下,结果为与Math.PI相等,这种方法比第一种要好得多*/
var num = 0;
var r1 = 8 + 4 * a;
var r2 = 1 + 2 * a;
num = 3 * r2 ** 2 / r1;
for (let x = 0; x < a; x++) {
r1 -= 4;
r2 -= 2;
num = 3 * r2 ** 2 / (r1 + num);
}
num = 6 * Math.sqrt(3) / (3 + num);
world.say(num);
world.say(`第${a}次循环,误差:` + Math.abs(num - Math.PI));
}
pi2(28)
function pi7(a) {/*在第48次循环下,结果为3.141492652589793,与Math.PI相差0*/
var num = 0;
var r = a + 1;
for (let x = 0; x < a; x++) {
r -= 1;
num = (2 * r * (2 * r - 1)) / (5 * r + 2 - num);
}
num = (3 * Math.sqrt(3)) / (2 - num);
world.say(num);
world.say(`第${a}次循环,误差:` + Math.abs(num - Math.PI));
}
pi7(48)
function pi4(a) {/*在第31385208次循环下,结果为与Math.PI相等*/
var num = 0;
var r = a + 1;
for (let x = 0; x < a; x++) {
r--;
num = (r ** 2) / (2 + num);
}
num = 2 * (2 - (1 / (2 + num)));
world.say(num);
world.say(`第${a}次循环,误差:` + Math.abs(num - Math.PI));
}
pi4(31385208)
function pi6(a) {/*在第48~10,0000,0000次循环下,结果都为3.141492652589793,与Math.PI相差4.440892098500626e-16,达不到0*/
var num = 0;
var r = a + 1;
for (let x = 0; x < a; x++) {
r--;
num = (r * (2 * r - 1)) / (r * 3 + 1 - num);
}
num = 2 / (1 - num);
world.say(num);
world.say(`第${a}次循环,误差:` + Math.abs(num - Math.PI));
}
pi6(48)
function pi5(a) {/**这里a为一组循环(每组2个),在第10,0000,0000次循环下,结果为3.1515926525897935,与Math.PI相差9.999996386511611e-10 */
var num = 0;
var r = a * 4 + 1;
for (let x = 0; x < a * 2; x++) {
r -= 2;
if (x % 2 == 0) {
num -= 1 / r;
} else {
num += 1 / r;
}
}
num *= 4;
world.say(num);
world.say(`第${a * 2}次循环,误差:` + Math.abs(num - Math.PI))
}
//pi5(1000000000)
function pi1(a) {/*在第10,0000,0000次循环下,结果为3.141492652589793,与Math.PI相差1.000000082740371e-9*/
var num = 0;
var r = 2 + 4 * a;
num = r ** 2 / 4;
for (let x = 0; x < a; x++) {
r -= 4;
num = r ** 2 / (4 + num);
}
num = 1 / (2 + num) * 8;
world.say(num);
world.say(`第${a}次循环,误差:` + Math.abs(num - Math.PI))
}
//pi1(1000000000)
function pi3(a) {/*在第10,0000,0000次循环下,结果为3.1415926551605895,与Math.PI相差1.5707963818556436e-9*/
var num = 0;
var r = a + 1;
for (let x = 0; x < a; x++) {
r--;
num = (r * (r + 1)) / (1 + num);
}
num = 2 * (1 + (1 / (1 + num)));
world.say(num);
world.say(`第${a}次循环,误差:` + Math.abs(num - Math.PI))
}
//pi3(1000000000)2023-05-07T10:31:15 点赞:0