
基本情報技術者試験 令和6年度 公開問題 科目B、全6問のうちの問5。
出典:令和6年度 基本情報技術者試験 公開問題 科目B 問5(表とプログラムは原本の画像を文字に書き起こし、字下げは 1 段を空白 2 つで表した。折り返した行は、原本どおり続きの位置にそろえた。関連度の分数の式は 1 行に書き直し、分数の横線を / で表した。Lxy、Mxy、Kx などの添字は並べて書いた。空欄は[ a ]~[ c ]で、解答群の表は 1 行の文に組み直した)
次の
一度の
| 注文番号 | 購入された商品のリスト |
|---|---|
| 1 | A, B, D |
| 2 | A, D |
| 3 | A |
| 4 | A, B, E |
| 5 | B |
| 6 | C, E |
注文データから,
Lxy = (Mxy × 全注
ここで,
手続 putRelatedItem は,
// 注文データ(ここでは表の例を与えている)大域: 文字列型配列の配列: orders ← {{"A", "B", "D"}, {"A", "D"}, {"A"},{"A", "B", "E"}, {"B"}, {"C", "E"}}○putRelatedItem(文字列型: item)文字列型の配列: allItems ← ordersに含まれる文字列を重複なく辞書順に格納した配列// 表の例では {"A", "B", "C", "D", "E"}文字列型の配列: otherItems ← allItemsの複製から値がitemである要素を除いた配列整数型: i, itemCount ← 0整数型の配列: arrayK ← {otherItemsの要素数個の0}整数型の配列: arrayM ← {otherItemsの要素数個の0}実数型: valueL, maxL ← -∞文字列型の配列: order文字列型: relatedItemfor (orderにordersの要素を順に代入する)if (orderのいずれかの要素の値がitemの値と等しい)itemCountの値を1増やすendiffor (iを1からotherItemsの要素数まで1ずつ増やす)if (orderのいずれかの要素の値がotherItems[i]の値と等しい)if (orderのいずれかの要素の値がitemの値と等しい)[ a ]の値を1増やすendif[ b ]の値を1増やすendifendforendforfor (iを1からotherItemsの要素数まで1ずつ増やす)valueL ← (arrayM[i] × [ c ]) ÷ (itemCount × arrayK[i])/* 実数として計算する */if (valueLがmaxLより大きい)maxL ← valueLrelatedItem ← otherItems[i]endifendforrelatedItemの値とmaxLの値をこの順にコンマ区切りで出力する
- アa arrayK[i],
b arrayM[i], c allItemsの要素数 - イa arrayK[i],
b arrayM[i], c ordersの要素数 - ウa arrayK[i],
b arrayM[i], c otherItemsの要素数 - エa arrayM[i],
b arrayK[i], c allItemsの要素数 - オa arrayM[i],
b arrayK[i], c ordersの要素数 - カa arrayM[i],
b arrayK[i], c otherItemsの要素数
答えと解説を開く
正解はオです。
arrayK[i] は
ほかの選択肢が違う理由
- アa と
b が 逆です。 arrayK[i] が item と 同じ 注文の 数に なり、 arrayM[i] が otherItems[i] の 注文数に なります。 さらに c の allItemsの 要素数 は 商品の 種類の 数 (例では 5) で、 全注 文数の 6 では ありません。 - イc は
合っていますが、 a と b が 逆です。 例の B では arrayM[i] が 3、 arrayK[i] が 2 に なり、 関連度が (3 × 6) ÷ (4 × 2) = 2.25 と 式と 違う 値に なります。 - ウa と
b が 逆で、 c の otherItemsの 要素数 は item 以外の 商品の 種類の 数 (例では 4) です。 全注 文数では ありません。 - エa と
b は 合っていますが、 c の allItemsの 要素数 は 商品の 種類の 数 (例では 5) です。 B の 関連度が (2 × 5) ÷ (4 × 3) で 約 0.83 に なり、 1.0 に なりません。 - カa と
b は 合っていますが、 c の otherItemsの 要素数 は item 以外の 商品の 種類の 数 (例では 4) です。 全注 文数の 6 では ありません。
仕組み
この
数える