最近看到一个比较有趣的 的计算:
< <
1 < < 2
令: = 1 + x ; ( 0 < x < 1)
两边平方:
2 = (1 + x)²
展开:
x² = 1 -2x
两边除以x :
x = 1/x - 2
1/x = x + 2
两边取倒:
x = 1/(x+2)
将上面结果迭代带入:
= 1 + x
连分数:
= 1 +
使用递归代码可以很方便验证结果:
function getSqrt(n){
if(n <= 1){
return 0
}
return 1/(2 + getSqrt(n-1))
}
// 简单递归 10 次
console.log(1+ getSqrt(10)) // 1.4142136248948696