javascript - 近似平方根

标签 javascript node.js algebra

我正在尝试解决这个挑战,但我不知道我的代码是否错误,或者挑战的措辞是否错误。该算法表示:

  1. 选择两个数字S,EX 平方根必须位于 [S,E] 区间内。
  2. 选择所需的精度e
  3. 当前间隔的中间值 M 将是一个很好的近似值。
  4. 当间隔[S,E]大于e时,执行:

    • 求当前区间M的中间值M
    • 如果 M^2 > xE = M,否则,S = M
    • 当长度为 我们的区间小于 e,即 X = M 的平方根。

下面的代码产生无限循环:

e = 0.001; //I want square root of 10
n = "10";
x = parseInt(n);
E = (x / 2);
S = 1;
M = ((E - S) / 2);
tam = (E - S);
while (tam >= e) {
 console.log(M)
 if ((M * M) > x) {
   E = M;
 } else {
   S = M
 };
 M = ((E - S) / 2);
 tam = (E - S);
}
console.log(n + ": " + M);

谢谢

最佳答案

您没有正确找到间隔的中点。您应该添加 ES 并除以二而不是相减。

e=0.001; //I want square root of 10
   n="10";
   x=parseInt(n);
   E=(x/2);
   S=1;
   M=((E+S)/2);
   tam = (E-S);
   while(tam>=e){
       console.log(M)
       if ((M*M)>x){E=M;}else{S=M};
       M=((E+S)/2);
       tam = (E-S);
   }   console.log(n+": "+M);

关于javascript - 近似平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55653676/

相关文章:

javascript - 每个()函数上的jquery load()一起工作

javascript - 保存ajax调用的id以在返回函数中使用它

node.js - 区分dynamodb TransactionCanceledException的方法

python - 是否有任何模块可以处理未识别的变量?

mysql - 如何在 SQL 中使用集合代数运算

javascript - 在 mouseenter 和 mouseleave 事件中使用 setTimeout

javascript - EXT JS 4.2.4 - 选择网格行[0] -> FireEvent ('click'

node.js - Node : Is it possible to eval js code using runInNewContext and limit its execution time by a timeout?

javascript(nodejs)while循环错误

重新排列简单符号代数表达式的算法