この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ア

解説

二分探索法(バイナリサーチ)を使ってf(x)=0の根を求めるアルゴリズムです。区間[0,1]を繰り返し半分に絞っていき、精度10^(-3)(1/1000)以下になるまで繰り返します。各ステップで区間幅が半分になるため、初期幅1から始めてn回実行後の区間幅は(1/2)^nになります。精度を10^(-3)以下にするには(1/2)^n ≦ 10^(-3)が必要で、2^n ≧ 1000を満たす最小のnは2^10=1024より、n=10回です。よって(2)は10回実行されます。なお2^10=1024>1000、2^9=512<1000なので9回では不十分です。二分探索の収束回数はlog₂(初期幅/目標精度)で求められます。

なぜ他の選択肢は違うのか

選択肢 イ
20回は精度10^(-6)相当です(2^20≒10^6)。目標精度が10^(-3)ならば10回で十分であり、20回は過剰な繰り返し回数です。
選択肢 ウ
100回は精度10^(-30)相当で大幅に過剰です。二分探索では10回で1000分の1の精度が得られるため100回は不要です。
選択肢 エ
1000回は桁違いに過剰です。二分探索は対数的に収束するため、精度10^(-3)には10回で到達でき、1000回は現実的な回数ではありません。

解くときのポイント

二分探索の反復回数=log₂(1/目標精度)で計算。精度10^(-k)には約3.32k回(≒k×log₂10)で到達。10^(-3)→約10回、10^(-6)→約20回をセットで覚える。