科目Bアルゴリズムとプログラミング

2026年度公開問題 科目B 問5
アルゴリズムとプログラミングの過去問

まずは自分で考えて、理由を確かめよう。

LET'S TRY

問題文

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

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

引数の例: {"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 における変換の例〔プログラム〕

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

出典:出典:IPA 令和8年度 基本情報技術者試験 科目B 公開問題 問5。共通の表記ルールは原典PDFの2〜3ページを参照してください。

原典PDFへのリンクを掲載。テキストは改行を整形し、ルビを本文漢字に統合。科目Bの枠付き空欄を[空欄]または[a][b]で表記。解説未作成。

当てはまるものを、ひとつ選んでね。

1〜4キーでも選択できます。Enterキーで採点できます。

出典:IPA 令和8年度 基本情報技術者試験 科目B 公開問題 問5
IPAの公開問題について ↗

LET'S UNDERSTAND

キホン猫と、理由を確かめよう。

自分で考えてから、解説を開いてみてね。

正解と解説を見る

正解は イ です。

この問題の解説は準備中です。正解と出典を確認しながら、理解を深めてみましょう。

同じ分野の問題を探す →

この問題を、学びのノートに。

Xでシェア ↗

学習ノートを読み込んでいます…