次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 一つの要素だけが1で他の要素が0であるような整数型の配列による表現を、本問ではOne-Hot表現という。関数oneHotEncodingは、図のように、色の名前が格納されている要素数1以上の文字列型の配列を引数として受け取り、配列に含まれる色の名前(図の例では3種類)に基づいて、各要素をOne-Hot表現に変換し、整数型配列の配列に格納して返す。関数oneHotEncodingにおける変換の例を図に示す。
One-Hot表現は重複なし一覧との一致位置だけを1にする

```
〔プログラム〕
○整数型配列の配列: oneHotEncoding(文字列型の配列: colors)
整数型: i, j, k
文字列型の配列: colorVector ← {} // 要素数0の配列
整数型の配列: tempVector
整数型配列の配列: oneHotVector ← {} // 要素数0の配列
/* 名前一覧の作成 */
for (i を 1 から colorsの要素数 まで 1 ずつ増やす)
if (colorVector の要素のいずれにも colors[i]の値 が格納されていない)
colorVectorの末尾 に a を追加する
endif
endfor
/* One-Hot表現への変換 */
for (j を 1 から colorsの要素数 まで 1 ずつ増やす)
tempVector ← {} // 要素数0の配列
for (k を 1 から colorVectorの要素数 まで 1 ずつ増やす)
if ( b )
tempVectorの末尾 に 1 を追加する
else
tempVectorの末尾 に 0 を追加する
endif
endfor
oneHotVectorの末尾 に tempVector を追加する
endfor
return 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] と等しい
正解と解説
正解:イ a: colors[i]の値、b: colors[j] が colorVector[k] と等しい
前半のループは重複のない色名一覧を作る処理なので、まだ登録されていない色名 colors[i] の値をそのまま colorVector の末尾へ追加します。後半は各色 colors[j] について一覧の要素を順に見て、一致した位置だけ1、それ以外は0を並べる処理なので、判定条件は colors[j] と colorVector[k] が等しいかどうかです。一覧側の要素が colors に含まれるかを問う条件では、常に真になって全要素が1になってしまいます。
選択肢ごとの解説
- アa は正しいものの、b の条件は必ず真になり、すべての要素が1になります。
- イ正解。一覧に色名を登録し、変換時は対象の色と一覧の要素の一致だけを1にします。
- ウ未定義の値を登録すると一覧が構築されず、判定条件も常に真になります。
- エb の条件は正しいものの、一覧に未定義の値を入れるため一致判定ができません。
同じ分野の他の問題
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型…2026年度 公開問題 科目B 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り…2025年度 公開問題 科目B 問2
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。 関数function1が受け取る引数…2025年度 公開問題 科目B 問1
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。