One-Hot表現への変換【基本情報技術者試験 科目B 公開問題】

令和8年度 基本情報技術者試験 公開問題 科目B 問5のブログのアイキャッチ画像 科目B 公開問題
広告

← 科目Bの公開問題一覧へ戻る

 基本情報技術者試験の科目Bの公開問題を題材に,One-Hot表現への変換処理について学習します。この問題では,配列から重複しない値の一覧を作成し,その一覧のどの位置に値が一致するかを1と0で表して,One-Hot表現に変換する処理を確認します。

広告

令和8年度 基本情報技術者試験 公開問題 科目B 問5

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

 一つの要素だけが1で他の要素が0であるような整数型の配列による表現を,本問では One-Hot 表現という。関数 oneHotEncoding は,図のように,色の名前が格納されている要素数1以上の文字列型の配列を引数として受け取り,配列に含まれる色の名前(図の例では3種類)に基づいて,各要素を One-Hot 表現に変換し,整数型配列の配列に格納して返す。関数 oneHotEncoding における変換の例を図に示す。

「令和8年度 基本情報技術者試験 公開問題 科目B 問5」の問題_画像

〔プログラム〕

○整数型配列の配列: 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

b

colors[i]の値colors の要素のいずれかに colorVector[k]の値 が格納されている
colors[i]の値colors[j] が colorVector[k] と等しい
未定義の値colors の要素のいずれかに colorVector[k]の値 が格納されている
未定義の値colors[j] が colorVector[k] と等しい

【解答】

【解説】

このプログラムは,文字列の配列をOne-Hot表現に変換する。まず,colorVector に重複しない色の名前を追加する。colorVector の要素のいずれにも colors[i] の値が格納されていない場合に,colors[i] の値を追加するので,a には colors[i]の値 が入る。

次に,colors[j] と colorVector[k] を比較し,一致すれば1,一致しなければ0を tempVector に追加する。この処理によって,colors[j] に対応するOne-Hot表現を作成するので,bには colors[j] が colorVector[k] と等しい が入る。

【参考】

「令和8年度 基本情報技術者試験 公開問題 科目B 問5」の解答_画像

この問題のポイント

 この問題から学べることは,

  • 配列から重複しない値を取り出して一覧を作る方法
  • 配列の要素を比較する方法
  • 二重のfor文による配列の処理
  • 条件に応じて1または0を配列に追加する処理
  • One-Hot表現への変換方法
  • 配列の配列を使って複数のOne-Hot表現を管理する方法

です。特に,One-Hot表現では,ある値と一覧の各要素を比較し,一致した位置だけを1,それ以外を0にすることを理解しておきましょう。

基本情報技術者試験の学習におすすめの参考書

基本情報技術者試験の合格を目指す方におすすめの参考書です。

イラストや図解が多く,基本情報技術者試験の内容を楽しくわかりやすく学べる定番の参考書です。試験対策の一冊としておすすめです。
¥1,870 (2026/08/31 13:14時点 | Amazon調べ)
イラストを使った解説が特徴の人気参考書です。基礎理論の考え方や計算問題もイメージで理解しやすく,独学学習との相性が良い一冊です。
¥2,420 (2026/08/31 13:06時点 | Amazon調べ)
基本情報技術者試験の出題範囲を幅広く学べる定番の参考書です。重要ポイントをしっかり確認しながら,試験合格に向けて学習できます。
¥1,870 (2026/09/01 10:37時点 | Amazon調べ)

学習のお役に立ちましたら

この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。

よろしければ、このサイトを応援いただけますと嬉しいです。

※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。

広告