
基本情報技術者試験 令和8年度 公開問題 科目B、全6問のうちの問5。
出典:令和8年度 基本情報技術者試験 公開問題 科目B 問5(図とプログラムは原本の画像を文字に書き起こし、字下げは 1 段を空白 2 つで表した。図は 1 行ずつ並べ直した。空欄は[ a ][ b ]で、解答群の表は 1 行の文に組み直した)
次の
一つの
- 引数の例 {"Red", "Green", "Blue", "Red"}
- "Red"の One-Hot 表現 {1, 0, 0}、"Green"の One-Hot 表現 {0, 1, 0}、"Blue"の One-Hot 表現 {0, 0, 1}
- 引数の例に対応する戻り値 {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 0}}
○整数型配列の配列: oneHotEncoding(文字列型の配列: colors)整数型: i, j, k文字列型の配列: colorVector ← {} // 要素数0の配列整数型の配列: tempVector整数型配列の配列: oneHotVector ← {} // 要素数0の配列/* 名前一覧の作成 */for (i を 1 から colorsの要素数 まで 1 ずつ増やす)if (colorVector の要素のいずれにも colors[i]の値 が格納されていない)colorVectorの末尾 に [ a ] を追加するendifendfor/* One-Hot表現への変換 */for (j を 1 から colorsの要素数 まで 1 ずつ増やす)tempVector ← {} // 要素数0の配列for (k を 1 から colorVectorの要素数 まで 1 ずつ増やす)if ([ b ])tempVectorの末尾 に 1 を追加するelsetempVectorの末尾 に 0 を追加するendifendforoneHotVectorの末尾 に tempVector を追加するendforreturn oneHotVector
- アa colors[i]の
値, b colors の 要素の いずれかに colorVector[k]の 値 が 格納されている - イa colors[i]の
値, b colors[j] が colorVector[k] と等しい - ウa 未定義の
値, b colors の 要素の いずれかに colorVector[k]の 値 が 格納されている - エa 未定義の
値, b colors[j] が colorVector[k] と等しい
答えと解説を開く
正解はイです。
前半は、
ほかの選択肢が違う理由
- アb の
条件は、 一覧の k 番目の 名前が colors の どこかに あれば 真に なります。 一覧の 名前は どれも colors から 作ったので、 いつも 真です。 どの 色も {1, 1, 1} に なってしまいます。 - ウ一覧に
未定義の 値を 足すので、 色の 名前が 一覧に 残りません。 一覧は 未定義が 4 つに なり、 b の 条件は いつも 偽に なって、 どの 色も {0, 0, 0, 0} に なります。 - エb は
合っていますが、 一覧に 未定義の 値を 足すので、 colors[j] と 等しい 名前が 一覧に 無く、 どの 色も 全部 0 に なります。
仕組み
One-Hot 表現は、
j が