基本情報技術者試験令和2年A問4

関数のゼロを探す効率的なアルゴリズムの理解

0≦x≦1の範囲で単調に増加する連続関数ƒ(x)が ƒ(0)≦0≦ƒ(1) を満たすときに,区間内で ƒ(x)=0 であるxの値を近似的に求めるアルゴリズムにおいて,(2)は何回実行されるか。〔アルゴリズム〕x0←0,x1←1とする。x←x0+x12とする。x1-x<0.001ならばxの値を近似値として終了する。ƒ(x)≧0ならばx1←xとして,そうでなければx0←xとする。(2)に戻る。

×不正解です

この問題は、0から1の範囲で連続的に増加する関数ƒ(x)が、特定の条件を満たす時に、関数ƒ(x)が0となるxの値を近似的に求めるアルゴリズムです。この問題の背景には、一種の二分探索法が用いられています。

二分探索法は、対象の範囲を半分に絞っていくことで、探している値に近づくという手法です。このアルゴリズムでは、初期の範囲は0から1で、各ステップでこの範囲を半分にしながら計算を続けます。そして、目標とする誤差の範囲、つまり0.001未満になるようになるまでこのプロセスを繰り返します。

操作の回数は、誤差が最初の1 (範囲全体) から0.001未満になるまでの所要ステップ数に対応します。このステップ数は、数学的には1/2^n=0.001を満たす最小のnを求めることで得られます。n=10の時、1/2^10=1/1024であり、0.001(1/1,000)を超えます。

このため、10回目のステップ実行で目標の精度に達し、回答が「ア:10」であると導き出せます。

回答数 1
正解率 0.00%