応用情報技術者 2023年 春期 午前2 問47
問題文
値引き条件に従って、商品を販売する。決定表の動作指定部のうち、適切なものはどれか。
〔値引き条件〕
① 上得意客(前年度の販売金額の合計が800万円以上の顧客)であれば、元値の3%を値引きする。
② 高額取引(販売金額が100万円以上の取引)であれば、元値の3%を値引きする。
③ 現金取引であれば、元値の3%を値引きする。
④ ①〜③の値引き条件は同時に適用する。


選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
値引き率の決定表【午前2解説】
正解の理由
この決定表は「①上得意客、②高額取引、③現金取引」の各条件が成立するごとに元値の3%ずつ加算して値引き率を決める(重複適用可)というルールです。したがって各ルール列の値引き率は
(成立している条件の個数) になります。各ルール列を具体的に計算すると、列1〜列8はそれぞれ 9%、6%、6%、3%、6%、3%、3%、0% となります。動作項目の行順(上から「値引きしない」「3%」「6%」「9%」)に照らすと、各列に入るべき「X」の位置は一意に定まります。選択肢のうち、この期待する配置と完全に一致するのは ウ のみであるため、ウ が正解です。
解法ステップ
- 条件成立ごとに3%を加算するというルールを式で表す:
。 - 各ルール列(1〜8)について、表の Y/N を読み取り成立条件の個数を数える。
- 得られた を「値引きしない(0%)/3%/6%/9%」のどれかに割り当てる。
- 動作行(上から:0%、3%、6%、9%)の対応する列にだけ「X」が入る配置を作る。
- 選択肢と照合して一致するものを選ぶ。
具体的計算(各列の判定と合算)
- ルール1: ①Y, ②Y, ③Y → → 9%(4行目にX)
- ルール2: ①Y, ②Y, ③N → → 6%(3行目にX)
- ルール3: ①Y, ②N, ③Y → → 6%(3行目にX)
- ルール4: ①Y, ②N, ③N → → 3%(2行目にX)
- ルール5: ①N, ②Y, ③Y → → 6%(3行目にX)
- ルール6: ①N, ②Y, ③N → → 3%(2行目にX)
- ルール7: ①N, ②N, ③Y → → 3%(2行目にX)
- ルール8: ①N, ②N, ③N → → 0%(1行目にX)
これにより期待される行ごとのX配置は(列1〜8):
- 行1(0%): - - - - - - - X
- 行2(3%): - - - X - X X -
- 行3(6%): - X X - X - - -
- 行4(9%): X - - - - - - -
選択肢をこの配置と比較して一致するのが ウ です。
選択肢別の誤答解説
- ア:行1(0%)と行4(9%)は合致する列があるが、行2と行3のX配置(3%と6%の割当)が期待値と異なる。具体的にはアの行3が列7にXがあり、列5にXがあるべきなのに配置ミス。
- イ:行1に不要な列(列3)で「値引きしない」が選ばれており、また行3/行2の配置が期待と合わない。複数列で割当がずれている。
- エ:行1に列4が入っているなど、複数列の割当が異なる。行ごとのX数や位置が合致しないため不適。
- ウ:期待するすべての列(1〜8)について正しい行にのみXが入っており完全一致するため正解。
よくある誤解
- 条件が「排他的」だと誤解する:本問は「同時に適用する」と明記されているため、条件は加算される(排他ではない)。これを見落とすと6%と9%の判定を誤る。
- 行・列の対応ミス:動作行の並び(上から0%、3%、6%、9%)を取り違えて、逆に割り当ててしまう受験者がいる。必ず問題文の下部の行順を確認する。
- 単純な数え間違い:Y の個数を数える作業でミスをして、3%×n の計算を誤ることがある。各列ごとに明示的に数えて検算する習慣をつける。
補足コラム
決定表は条件の網羅性と各列の一意性(同一条件組合せが重複していないか)をチェックするのに有効です。本問では8列で3条件の全組合せ(2^3=8)を網羅しており、各列に対して必ず一つの動作が割り当てられます。プログラムで検算する場合の簡単な例を示します(参考):
# 条件列を (上得意, 高額, 現金) の順に True/False で表現
rules = [
(1,1,1), (1,1,0), (1,0,1), (1,0,0),
(0,1,1), (0,1,0), (0,0,1), (0,0,0)
]
discounts = [sum(r)*3 for r in rules] # 単位はパーセント
print(discounts) # -> [9, 6, 6, 3, 6, 3, 3, 0]
このように機械的に算出してから、動作行(0/3/6/9%)への割当を確認するとミスが減ります。
FAQ
Q. 条件の「同時に適用する」はどのように扱うべきか?
A. 各成立条件ごとに個別の値引き(3%)が加算される。排他的に一つだけ選ぶのではなく、成立した分だけ合算する。
A. 各成立条件ごとに個別の値引き(3%)が加算される。排他的に一つだけ選ぶのではなく、成立した分だけ合算する。
Q. 表の行順を間違えたらどうなるか?
A. 行順(下部の動作項目の上から下への並び)を誤ると正しい選択肢が異なる。問題文の下部の列挙を必ず確認すること。
A. 行順(下部の動作項目の上から下への並び)を誤ると正しい選択肢が異なる。問題文の下部の列挙を必ず確認すること。
Q. 自動検算は有効か?
A. 有効。特に条件が多い場合は表を数値化してスクリプトなどでチェックすると安心。
A. 有効。特に条件が多い場合は表を数値化してスクリプトなどでチェックすると安心。
関連キーワード: 決定表、値引き、条件網羅、判定表、真理表

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

