基本情報技術者試験のサンプル問題(科目B)を解いてみよう。
今回のテーマは、「関数calcの計算結果」である。

正解:オ
この問題は、関数 calc が x² + y² の平方根(すなわち斜辺の長さ)を計算するプログラムを読み解くものである。
関数calcの目的
- 関数
calc(x, y)
は、2つの正の実数x
、y
を受け取り、戻り値として、
$\sqrt{\left( x^{2}+y^{2}\right) }$(三平方の定理に基づく直角三角形の斜辺)を返すことを目的としている。 pow(a, b)
は、a
をb
乗した値を返す関数である。
選択肢と関数calcを検討しよう
選択肢から目的の計算式に一致するものを検討していこう。
ア (pow(x, 2)+pow(y, 2)) ÷ pow(2, 0.5)
(x² + y²) / √2
:明らかに違う。
イ (pow(x, 2)+pow(y, 2)) ÷ pow(x, y)
(x² + y²) / (xʸ)
:何の関連もなし。
ウ pow(2, pow(x,0.5)) + pow(2, pow(y,0.5))
不要に複雑で意味不明。
エ pow(pow(pow(2, x), y), 0.5)
√(2^(x·y))
:全く異なる。
オ pow(pow(x, 2) + pow(y, 2), 0.5)
$\sqrt{\left( x^{2}+y^{2}\right) }$:求めたい式に完全一致。
カ pow(x, 2) × pow(y, 2) ÷ pow(x, y)
→ (x² · y²) ÷ (xʸ)
:√の演算ではなく、全く異なる式。
キ pow(x, y) ÷ pow(2, 0.5)
→ xʸ ÷ √2
:$ \sqrt{\left( x^{2}+y^{2}\right) }$とは関係ない演算。
したがって、正解は「オ」となる。
もう一度「選択肢 オ」の計算結果をみてみよう
pow(x, 2)
によって x² を計算。- 同様に
pow(y, 2)
で y² を算出。 - それらの合計を括弧でグルーピングし、
pow(..., 0.5)
を使うことで平方根(0.5 乗)が得られる。
pow(pow(x,2)+pow(y,2), 0.5)
はまさに$ \sqrt{\left( x^{2}+y^{2}\right) }$の計算を意味する。
解法のポイント
- 平方根の定義:√A = A^(1/2) であり、pow(A, 0.5) と同義。
- 選択肢の式を見て、x² + y² の “平方根” を取る必要があることがわかれば、「オ」のみが正しいと判断できる。
コメント