次のプログラム中の [a] ~ [c] に入れる正しい答えの組合せを,解答群の中から選べ。…

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

次のプログラム中の [a] ~ [c] に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1 から始まる。一度の注文で購入された商品のリストを,注文ごとに記録した注文データがある。表に,注文データの例を示す。注文データから,商品x と商品y とが同一の注文で購入されやすい傾向を示す関連度Lxy を,次の式で計算する。ここで,Mxy は商品x と商品y とが同一の注文で購入された注文数,Kx は商品x が購入された注文数,Ky は商品y が購入された注文数を表す。表の例では,MAB が2,全注文数が6,KA が4,KB が3 であるので,商品A と商品B の関連度LAB は,(2 ×6) / (4 × 3) = 1.0 である。手続putRelatedItem は,大域変数orders に格納された注文データを基に,引数で与えられた商品との関連度が最も大きい商品のうちの一つと,その関連度を出力する。プログラムでは,商品は文字列で表し,注文は購入された商品の配列,注文データは注文の配列で表している。注文データには2 種類以上の商品が含まれるものとする。また,注文データにある商品以外の商品が,引数として与えられることはないものとする。

基本情報技術者 2024年度(令和6年度)公開問題 科目B 問5の表(1/3)基本情報技術者 2024年度(令和6年度)公開問題 科目B 問5の表(2/3)基本情報技術者 2024年度(令和6年度)公開問題 科目B 問5の表(3/3)基本情報技術者 2024年度(令和6年度)公開問題 科目B 問5の選択肢の図
参考:擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)

問題冊子の末尾に載っている参考のページです。

擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)
正答 オ
正答は オ。a:arrayM[i]、b:arrayK[i]、c:orders の要素数 です。 関連度は Lxy =(Mxy × 全注文数)÷(Kx × Ky)です。プログラムの最後の式 valueL ←(arrayM[i] × [c])÷(itemCount × arrayK[i])と見比べると、それぞれ次のものに当たります。 itemCount 引数の商品 item(x)を含む注文の数(Kx) arrayK[i] otherItems[i](y)を含む注文の数(Ky) arrayM[i] x と y を両方含む注文の数(Mxy)
解説の続きをみる続きを閉じる
[c] 全注文数 二重の if の内側(order に item も含まれるとき)で増やすのがMxy なので a は arrayM[i]、外側(otherItems[i] を含むとき)で増やすのが Ky なので b は arrayK[i] です。全注文数は注文データorders の要素数(表の例では 6)なので、c は orders の要素数です。 【トレース(オを入れ、putRelatedItem("A") を呼んだ場合)】 otherItems={"B", "C", "D", "E"} 注文 1 {A, B, D}:itemCount=1、B と D の K・M を 1 増やす 注文 2 {A, D}:itemCount=2、D の K・M を 1 増やす 注文 3 {A}:itemCount=3 注文 4 {A, B, E}:itemCount=4、B と E の K・M を 1 増やす 注文 5 {B}:B の K だけ 1 増やす(A を含まない) 注文 6 {C, E}:C と E の K だけ 1 増やす 結果:arrayK={3, 1, 2, 2}、arrayM={2, 0, 2, 1} 関連度(c=6) B:(2 × 6) ÷ (4 × 3) = 1.0 C:(0 × 6) ÷ (4 × 1) = 0 D:(2 × 6) ÷ (4 × 2) = 1.5 E:(1 × 6) ÷ (4 × 2) = 0.75 最大は D で、「D,1.5」と出力されます。B の 1.0 は問題文のLAB の例と一致します。 【ほかの選択肢】 ア・イ・ウ(a:arrayK[i]、b:arrayM[i]) 誤り   → K と M の数え方が入れ替わる。arrayK に同時購入の数、    arrayM に y の注文数が入り、式の分子と分母が逆の意味になる。例えば C は同時購入が 0 なので arrayK が 0 になり、0 で割ることになってしまう エ(c:allItems の要素数) 誤り カ(c:otherItems の要素数) 誤り   → allItems の要素数は商品の種類の数 5、otherItems の要素数は    4 で、全注文数ではない。LAB が (2 × 5) ÷ 12 ≒ 0.83 や(2 × 4) ÷ 12 ≒ 0.67 となり、問題文の 1.0 と合わない 【見分け方】 式の各記号が、プログラムのどの変数に対応するかを先に決めると、空欄に何を入れるかが決まります。内側の if は「x と y の両方を含む」、外側の if は「y を含む」という条件です。

出典:令和6年度 基本情報技術者試験 科目B 公開問題 問5(独立行政法人情報処理推進機構)出典元ページ

最終更新日

この回を通しで解く この分野を年度横断で解く

「科目B アルゴリズムとプログラミング」のほかの問題

  1. 2025年度(令和7年度)公開問題 科目B 問5次の記述中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。
  2. 2026年度(令和8年度)公開問題 科目B 問1次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  3. 2026年度(令和8年度)公開問題 科目B 問2次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  4. 2026年度(令和8年度)公開問題 科目B 問3次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  5. 2026年度(令和8年度)公開問題 科目B 問4次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
  6. 2026年度(令和8年度)公開問題 科目B 問5次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ

問題文・解答の修正依頼

スポンサーリンク