この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は エ

解説

コサイン類似度は、二つのベクトル間の角度の余弦(コサイン)を計算することで、ベクトルの向きがどれだけ似ているかを-1から1の値で表す重要な指標です。1に近いほど類似度が高く、0に近いほど無関係、-1に近いほど逆の関係を示します。 この問題のプログラムでは、コサイン類似度の計算式の分子と分母を分けて計算しています。分子部分では二つのベクトルの対応する要素同士の積の和(内積)を計算し、分母では各ベクトルの大きさ(ノルム)を求めてそれらの積を計算します。 プログラム中の[a]には、分子を計算するためのvector1[i]とvector2[i]の積が入り、[b]には分母を完成させるために、既に計算済みのdenominator(vector1のノルム)とtempの平方根(vector2のノルム)の積が入ります。これにより、コサイン類似度の数式の形が完成します。 この問題は、数式を正しくプログラムに変換する能力と、ベクトルの基本的な演算についての理解を確認するものです。

なぜ他の選択肢は違うのか

選択肢 ア
vector1[i] × vector2[i]は分子の計算の一部としては正しいですが、これは[b]の位置に入れる値としては不適切です。分母には両ベクトルのノルムの積が必要で、個々の要素の積ではありません。
選択肢 イ
denominator × √tempの順序は正しいのですが、これを新しいdenominatorとして代入すると、後の計算でsimilarityを求める際に分母が二重に計算されてしまい、正しい結果が得られません。
選択肢 ウ
numerator × √tempは、既に計算済みの分子に片方のベクトルのノルムだけを掛けることになり、コサイン類似度の計算式の分母として必要な両ベクトルのノルムの積という形にはなりません。

解くときのポイント

コサイン類似度の計算を理解するには、以下の3つのステップを押さえましょう: 1. 分子は二つのベクトルの内積(対応する要素の積の和) 2. 分母は両ベクトルの大きさ(ノルム)の積 3. ノルムは、各要素の二乗和の平方根 プログラムの流れを追う際は、変数の値がどのように更新されていくかを注意深く確認することが重要です。特にdemonimatorの計算では、最初のベクトルのノルムが計算され、その後で二つ目のベクトルのノルムとの積を求める必要があります。