問題
手続 putRelatedItem は、注文データ orders を基に、引数 item との関連度が最も大きい商品とその関連度を出力する。関連度 Lxy は (Mxy × 全注文数) ÷ (Kx × Ky) で計算する。Mxy は商品 x と y が同一注文で購入された注文数、Kx は商品 x が購入された注文数、Ky は商品 y が購入された注文数を表す。配列の要素番号は 1 から始まる。図の表・式・プログラムを踏まえ、空欄 a〜c に入れる答えの正しい組合せを、解答群の中から選べ。

選択肢
- 1a: arrayK[i] / b: arrayM[i] / c: allItemsの要素数
- 2a: arrayK[i] / b: arrayM[i] / c: ordersの要素数
- 3a: arrayK[i] / b: arrayM[i] / c: otherItemsの要素数
- 4a: arrayM[i] / b: arrayK[i] / c: allItemsの要素数
- 5a: arrayM[i] / b: arrayK[i] / c: ordersの要素数
- 6a: arrayM[i] / b: arrayK[i] / c: otherItemsの要素数
正解
5. a: arrayM[i] / b: arrayK[i] / c: ordersの要素数
詳しい解説を見る解説を閉じる
解説
式 valueL ← (arrayM[i] × c) ÷ (itemCount × arrayK[i]) を Lxy = (Mxy × 全注文数) ÷ (Kx × Ky) と対応させると、arrayM[i]=Mxy、itemCount=Kx、arrayK[i]=Ky であり、c は全注文数すなわち ordersの要素数 となる。a と b は order が otherItems[i] を含むときに評価される。最も内側の if(order が item も含む)が真のとき増やす a は、item と otherItems[i] が同一注文で買われた数 Mxy なので a=arrayM[i]。その外側で otherItems[i] を含む注文ごとに増やす b は otherItems[i] の購入注文数 Ky なので b=arrayK[i]。よって a=arrayM[i]、b=arrayK[i]、c=ordersの要素数 のオが正解。(出典: 令和6年度 基本情報技術者試験 科目B 問5)
一問一答
科目A 180問+科目B 60問