問題
0≦x≦1 の範囲で単調に増加する連続関数 f(x) が f(0)<0<f(1) を満たすときに、区間内で f(x)=0 である x の値を近似的に求めるアルゴリズム(二分法)において、(2) は何回実行されるか。 〔アルゴリズム〕 (1) x_0←0、x_1←1 とする。 (2) x←(x_0+x_1)/2 とする。 (3) x_1−x<0.001 ならば x の値を近似値として終了する。 (4) f(x)≧0 ならば x_1←x として、そうでなければ x_0←x とする。 (5) (2) に戻る。
選択肢
- 110
- 220
- 3100
- 41,000
正解
1. 10
詳しい解説を見る解説を閉じる
解説
二分法で区間 [x_0, x_1] を繰り返し半分にしていく。(2) で中点 x=(x_0+x_1)/2 を求めると、x_1−x=(x_1−x_0)/2 となる。初期区間幅は1なので、(2) のk回目の実行時には x_1−x=1/2^k。(3) の終了条件 x_1−x<0.001 は 1/2^k<0.001、すなわち 2^k>1000 を満たせばよい。2^9=512、2^10=1024 より、最小のkは10で、10回目に 1/1024≒0.00098<0.001 となり終了する。したがって (2) は10回実行される。よってアの10が正解。(出典: 令和7年度 春期 応用情報技術者試験 午前 問2)
一問一答
全400問を繰り返し学習