NWネットワークスペシャリスト試験 午前Ⅰ

令和7年度春期 ネットワークスペシャリスト 午前Ⅰ 問1

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    10
  2. イ
    20
  3. ウ
    100
  4. エ
    1、000
解き方のヒントを見る

反復計算を見直す観点

反復計算の回数を考えるときは、計算の進み方だけでなく、近似値がどの段階で十分な精度に達したと判断されるかを中心に確認しましょう。停止条件と更新の対応を整理することが大切です。

この問題で問われていること

各反復で得られる値の変化と、計算を終える判断基準が問題文の条件と整合しているかに注目し、回数そのものを暗記せず、判定の順序を丁寧に追って確認してください。

視点

反復回数は、初期の設定、値の更新、十分とみなす基準、終了判定の順序を整理して考えます。途中の値だけでなく、どの時点を一回として数えるかにも注意しましょう。

確認ポイント

  • 初期値を含めるか、更新後から数えるかを確認する
  • 近似の変化をどの基準で評価するかを確認する
  • 終了判定が各反復の前後どちらに置かれるかを確認する
正解と解説を見る

正解

ア

解説

このアルゴリズムは二分法であり、(2)を実行するたびに中点から上端までの距離が半分になります。k回目の実行後はその距離が1/2^kなので、1/2^10=0.0009765625<0.001となる10回目で終了します。

理由

初期区間は0から1までで長さ1です。(2)をk回実行した直後の中点から上端までの距離は1/2^kになります。したがって、10回目では1/2^10=0.0009765625となり、終了条件の0.001未満を満たします。

比較

9回目では1/512=0.001953125で、まだ0.001未満ではありません。一方、10回目では条件を満たすため、(5)によってさらに(2)へ戻ることはありません。よって実行回数は10回です。

選択肢ア(正解)

これは正解だよ。初期区間の幅は1で、(2)を1回実行すると中点から上端までの距離は1/2になります。以後、(2)を1回実行するたびにその距離は半分になり、10回目では1/1024となって0.001未満です。したがって、この回数で終了条件を満たします。

選択肢イ

これは不正解だよ。20回という回数は、終了条件を満たすために必要な反復回数を大きく超えています。各回で距離は半分になるため、10回目の時点ですでに0.001未満となります。(2)は条件を満たした時点で終了するので、20回までは実行されません。

選択肢ウ

これは不正解だよ。100回という回数は、二分法の収束に必要な回数より過剰です。初期区間が長さ1で、各回に中点から上端までの距離が半分になることを使うと、10回目で0.001未満に達します。終了後に(2)を続けて実行することはありません。

選択肢エ

これは不正解だよ。1,000回という回数は、指定された精度に対して過大です。終了判定の対象は中点から上端までの距離であり、10回目には1/1024となって0.001未満です。そのため、条件を満たした後も反復を続けるという解釈はアルゴリズムと一致しません。

学習のポイント

二分法の区間縮小と、終了条件を満たす最初の反復回数の求め方を学ぶ。

出典:独立行政法人 情報処理推進機構(IPA)令和7年度春期 ネットワークスペシャリスト試験 午前Ⅰ 問1(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針