科目Bアルゴリズム

2023年春 科目B 問5
アルゴリズムの過去問

まずは自分で考えて、理由を確かめよう。

LET'S TRY

問題文

次のプログラム中の a と b に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。


コサイン類似度は,二つのベクトルの向きの類似性を測る尺度である。関数calcCosineSimilarityは,いずれも要素数がn(n≧1)である実数型の配列vector1とvector2を受け取り,二つの配列のコサイン類似度を返す。


コサイン類似度 = (a1b1 + a2b2 + ... + anbn) / (√(a1²+...+an²) × √(b1²+...+bn²))


〔プログラム〕

○実数型: calcCosineSimilarity(実数型の配列: vector1, 実数型の配列: vector2)

実数型: similarity, numerator, denominator, temp ← 0

整数型: i

numerator ← 0

for (i を 1 から vector1の要素数 まで 1 ずつ増やす)

numerator ← numerator + a

endfor

for (i を 1 から vector1の要素数 まで 1 ずつ増やす)

temp ← temp + vector1[i]の2乗

endfor

denominator ← tempの正の平方根

temp ← 0

for (i を 1 から vector2の要素数 まで 1 ずつ増やす)

temp ← temp + vector2[i]の2乗

endfor

denominator ← b

similarity ← numerator ÷ denominator

return similarity

当てはまるものを、ひとつ選んでね。

1〜4キーで選択し、Enterキーで採点できます。

出典:令和5年度 基本情報技術者試験 科目B 問5
IPAの公開問題について ↗

LET'S UNDERSTAND

キホン猫と、理由を確かめよう。

自分で考えてから、解説を開いてみてね。

正解と解説を見る

正解は エ です。

a: numeratorはΣ(vector1[i]×vector2[i])の内積なのでvector1[i]×vector2[i]。b: denominatorは√(Σa²)×√(Σb²)で、最初のforでdenominator=√(Σvector1[i]²)が計算され、次のforでtemp=Σvector2[i]²が計算されるので、b=denominator×(tempの正の平方根)。

同じ分野の問題を探す →

この問題を、学びのノートに。

Xでシェア ↗

学習ノートを読み込んでいます…