基本情報技術者試験〔科目B〕演習2022年サンプル問題 問5(文法問題)
次のプログラム中の□に入れる正しい答えを、解答群の中から選べ。
関数calc は、正の実数xとyを受け取り、√(x^2+y^2 )
の計算結果を返す。関数calcが使う関数powは、第1引数として正の実数aを、第2引数として実数bを受け取り、aのb乗の値を実数型で返す。
〔プログラム〕
1: 〇実数型:calc (実数型: x, 実数型: y)
2: return □
解答:pow(pow(x, 2) + pow(y, 2), 0.5)
プログラム構造の分析
関数 calc の戻り値型は「実数型」。
引数 x と y は「正の実数型」。
return 文でユークリッド距離の計算結果を返す。
ユークリッド距離の公式:√(x^2+y^2 )
これを pow 関数を使って表現すると:
x2 は pow(x, 2)。
y2は pow(y, 2)。
x2 + y2は pow(x, 2) + pow(y, 2)。
これの平方根(0.5乗)は pow(pow(x, 2) + pow(y, 2), 0.5)。
・Java でコーディング
public class Main {
// calc関数を定義
public static double calc(double x, double y) {
// √(x^2 + y^2) を返す
return Math.pow(Math.pow(x, 2) + Math.pow(y, 2), 0.5);
}
public static void main(String[] args) {
// テストデータ
double x = 3.0;
double y = 4.0;
// calc関数の呼び出し
double result = calc(x, y);
// 結果を出力
System.out.println("The result is: " + result); // 出力: 5.0 } }
・Python でコーディング
import math
# calc関数を定義
def calc(x, y):
# √(x^2 + y^2) を返す
return math.pow(math.pow(x, 2) + math.pow(y, 2), 0.5)
# テストデータ x = 3.0y = 4.0 # calc関数の呼び出し
result = calc(x, y)
# 結果を出力
print(f"The result is: {result}")
# 出力: 5.0
補足
・平方根とは
「面積がわかっているとき、正方形の辺の長さは何センチメートルか?」と考えるのが「平方根」の考え方である。0.5乗は平方根である。
面積が 9平方センチメートル の正方形を考えると、辺の長さは 3cm である。
これを数学的に書くと、平方根の記号√ を使って次のように表せる: = 3
→ 9の平方根は3 と表せる。
・ユークリッド距離とは
Chat -GPTによる解説
ユークリッド距離は、平面上の2点間の直線の距離を計算する方法です。
簡単な例
例えば、地図の上で次の2点を考えてみましょう:
A点:家(横に3km、縦に4kmの位置)
B点:学校(家から見て、真っすぐの直線でどれだけ離れているかを計算したい)
横の距離と縦の距離が分かっているとき、直線距離を計算するには次の公式を使います:
直線距離=√(〖(横の距離)〗^2+〖(縦の距離)〗^2 )
具体的な計算
横の距離:3km
縦の距離:4km
直線距離: = = 5
つまり、A点とB点の間のユークリッド距離は 5km です。
※記事中の平方根の数式は、プレーンテキストで表記した。
以上。