質問:知られているSQRT(2)が1.414にほぼ等しい、SQRTを求めて、何の数学ライブラリを必要としない(2)10の小数点以下の桁数の後に。
人々の話題:アリババのトピックの専門家:月/アリクラウドCDN上級技術専門家。
検査ポイント:柔軟なアプリケーション能力ベースのアルゴリズム(二分法の学生がデータ構造を研究承知しているが、必ずしもこの方向性を考慮していない。学生は数値計算を学んだ場合、また、ニュートン反復法を考えると説明することができるはずです)終了条件デザイン
回答:
1. 既知SQRT(2)約1.414の、そのようなバイナリサーチなどのセクション(1.4、1.5)、で行うことができます。
A)=> 1.5高
b)は、低=> 1.4
C)半ば=)>(高+低/2=1.45
Cに再循環D)1.45 * 1.45> 2高=> 1.45 :?低い=> 1.45 e)参照)
2. 終了条件
<二つの長手方向= 0.0000000001のa)の絶対値との差、終了することができ
constのダブルEPSINON = 0.0000000001。 ダブルSQRT2(){ ダブルロー= 1.4、ハイ= 1.5。 =(低+高)/ 2ダブルミッド。 一方、(高-低> EPSINON){ IF(中間*ミッド> 2){ 高=ミッド。 } 他{ 低い=ミッド。 } 半ば=(ローハイ+)/ 2。 } 半ばを返します。 }