平成27年度 秋期 午前 問3
アルゴリズム
関数に関する問題
関数 f(x) は,引数も戻り値も実数型である。この関数を使った,① 〜 ⑤ から成る手続を考える。手続の実行を開始してから ② 〜 ⑤ を十分に繰り返した後に,③ で表示される y の値に変化がなくなった。このとき成立する関係式はどれか。
手続(原典の逐語):
① x ← a ② y ← f(x) ③ y の値を表示する。 ④ x ← y ⑤ ② に戻る。
- アf(a) = y
- イf(y) = 0
- ウf(y) = a
- エf(y) = y
答えと解説を見る
✓ これが正解エf(y) = y
解説
値が変わらないとき、関数に通しても同じ値が返ります。
手続をたどると、xに入れた値を関数fに通した結果をyとし、そのyを次のxに入れて同じことを繰り返しています。つまり毎回、直前に得た値をもう一度関数に通しているわけです。表示されるyの値に変化がなくなったということは、関数に通す前の値と通した後の値が等しくなった状態を指します。見る軸は2つです。1つ目は、繰り返しの中でxとyがどうつながっているか。2つ目は、変化がなくなったという条件が、どの2つの値の一致を意味するかです。初期値のaは最初の1回でxへ入るだけで、その後の繰り返しには関わりません。ですから安定した状態を書き表す関係式に、aが残ることはありません。
ほかの選択肢はなぜ違うのか
- アf(a) = y:初期値を関数に通した結果が表示されるのは、繰り返しの1回目だけです。2回目からは直前の表示値を入力にするので、この等式は落ち着いた状態を表しません。
- イf(y) = 0:戻り値が0になるという条件は、手続のどこにも書かれていません。表示が動かなくなるのは入力と出力が一致したときであって、出力が0のときとは限りません。
- ウf(y) = a:初期値は手続の始まりで一度使われるだけで、以降の代入には登場しません。落ち着いた状態で成り立つ関係にその値を持ち込む根拠が、手続の中にありません。
出典:平成27年度 秋期 基本情報技術者試験 午前 問3
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)