Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 近似平方根_Javascript_Node.js_Algebra - Fatal编程技术网

Javascript 近似平方根

Javascript 近似平方根,javascript,node.js,algebra,Javascript,Node.js,Algebra,我试图解决这个问题,但我不知道我的代码是否错误,或者问题的措辞是否错误。算法说: 选择两个数字S,E。X平方根必须在[S,E]区间内。 选择所需的精度e。 当前间隔的中间值M将是一个很好的近似值。 当间隔[S,E]大于E时,执行以下操作: 求当前间隔M的中间值; 如果M^2>x,E=M,否则S=M; 当长度 我们的区间小于e,X=M的平方根。 下面的代码生成一个无限循环: e=0.001//我要10的平方根 n=10; x=parseIntn; E=x/2; S=1; M=E-S/2; tam=

我试图解决这个问题,但我不知道我的代码是否错误,或者问题的措辞是否错误。算法说:

选择两个数字S,E。X平方根必须在[S,E]区间内。 选择所需的精度e。 当前间隔的中间值M将是一个很好的近似值。 当间隔[S,E]大于E时,执行以下操作:

求当前间隔M的中间值; 如果M^2>x,E=M,否则S=M; 当长度 我们的区间小于e,X=M的平方根。 下面的代码生成一个无限循环:

e=0.001//我要10的平方根 n=10; x=parseIntn; E=x/2; S=1; M=E-S/2; tam=E-S; 而tam>=e{ 控制台logM 如果M*M>x{ E=M; }否则{ S=M }; M=E-S/2; tam=E-S; } console.logn+:+M;
谢谢

您没有正确找到间隔的中点。你应该把E和S相加,然后除以2,而不是减法

e=0.001//我要10的平方根 n=10; x=parseIntn; E=x/2; S=1; M=E+S/2; tam=E-S; whiletam>=e{ 控制台logM 如果M*M>x{E=M;}否则{S=M}; M=E+S/2; tam=E-S;
}控制台logn+:+M;区间[S,E]的中点是E+S/2,而不是E-S/2@PM77-1由while循环暗示,只要tam>=e?当tam