基本情報トップに戻る
練習問題難易度: 標準2023年度

基本情報技術者 過去問練習問題 第5問

問題

次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。コサイン類似度は、二つのベクトルの向きの類似性を測る尺度である。関数 calcCosineSimilarity は、いずれも要素数が n(n≧1)である実数型の配列 vector1 と vector2 を受け取り、二つの配列のコサイン類似度を返す。コサイン類似度は、図に示す数式(分子が各要素の積の和、分母が各配列の二乗和の平方根どうしの積)で計算される。ここで、配列の要素番号は 1 から始まる。

の図表

選択肢

  1. 1a:(vector1[i] × vector2[i])の正の平方根   b:denominator × (tempの正の平方根)
  2. 2a:(vector1[i] × vector2[i])の正の平方根   b:denominator + (tempの正の平方根)
  3. 3a:(vector1[i] × vector2[i])の正の平方根   b:tempの正の平方根
  4. 4a:vector1[i] × vector2[i]   b:denominator × (tempの正の平方根)
  5. 5a:vector1[i] × vector2[i]   b:denominator + (tempの正の平方根)
  6. 6a:vector1[i] × vector2[i]   b:tempの正の平方根
  7. 7a:vector1[i]の2乗   b:denominator × (tempの正の平方根)
  8. 8a:vector1[i]の2乗   b:denominator + (tempの正の平方根)
  9. 9a:vector1[i]の2乗   b:tempの正の平方根

正解

4. a:vector1[i] × vector2[i]   b:denominator × (tempの正の平方根)

詳しい解説を見る

解説

コサイン類似度は(分子)÷(分母)です。分子は a1b1+a2b2+…+anbn、すなわち対応する要素どうしの積の総和です。numerator はこの和を作っているので、a は「vector1[i] × vector2[i]」となります(平方根や 2 乗ではありません)。分母は √(Σa²)×√(Σb²) です。プログラムは先に denominator に vector1 の二乗和の平方根(√(Σa²))を入れ、次に temp に vector2 の二乗和を求めています。最終的な分母にするには、これに √(Σb²)(=tempの正の平方根)を掛ける必要があるため、b は「denominator × (tempの正の平方根)」です。よって組合せはエとなります。(出典: 令和5年度 基本情報技術者試験 科目B 問5)

一問一答

科目A 180問+科目B 60問

練習問題の関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。