令和6年試験問題 [科目B]問5
問5解説へ
次のプログラム中のa~cに入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。
一度の注文で購入された商品のリストを,注文ごとに記録した注文データがある。表に,注文データの例を示す。 注文データから,商品xと商品yとが同一の注文で購入されやすい傾向を示す関連度Lxyを,次の式で計算する。
手続 putRelatedItem は,大域変数 orders に格納された注文データを基に,引数で与えられた商品との関連度が最も大きい商品のうちの一つと,その関連度を出力する。プログラムでは,商品は文字列で表し,注文は購入された商品の配列,注文データは注文の配列で表している。注文データには2種類以上の商品が含まれるものとする。また,注文データにある商品以外の商品が,引数として与えられることはないものとする。
〔プログラム〕
一度の注文で購入された商品のリストを,注文ごとに記録した注文データがある。表に,注文データの例を示す。 注文データから,商品xと商品yとが同一の注文で購入されやすい傾向を示す関連度Lxyを,次の式で計算する。
Lxy=Mxy × 全注文数Kx × Ky
ここで,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種類以上の商品が含まれるものとする。また,注文データにある商品以外の商品が,引数として与えられることはないものとする。
〔プログラム〕
正解 オ問題へ
分野:アルゴリズムとプログラミング
カテゴリ:プログラミングの諸分野への適用
カテゴリ:プログラミングの諸分野への適用
広告
解説
説明文で与えられている以下の式と、それをプログラムで表現している部分と比較すると、次のような対応関係になっていることがわかります。
次に空欄a、bを含むfor文を見てみると、order(注文データ)に含まれる値を条件として1を加算する処理を行っています。
したがって「オ」の組合せが適切です。
Lxy=Mxy × 全注文数Kx × Ky
valueL ← (arrayM[i] × c) ÷ (itemCount × arrayK[i])
- Lxy ⇒ valueL
- Mxy ⇒ arrayM[i]
- 全注文数 ⇒ c
- Kx ⇒ itemCount
- Ky ⇒ arrayK[i]
次に空欄a、bを含むfor文を見てみると、order(注文データ)に含まれる値を条件として1を加算する処理を行っています。
- order に otherItems[i] が含まれる
- bに1を加算
- order に otherItems[i] が含まれ、かつ、order に item が含まれる
- aに1を加算
したがって「オ」の組合せが適切です。
広告