次の記述中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。 三目並べにおいて自分が勝利する可能性が最も高い手を決定する。次の手順で、ゲームの状態遷移を木構造として表現し、根以外の各節の評価値を求める。その結果、根の子の中で最も評価値が高い手を、最も勝利する可能性が高い手とする。自分が選択した手を〇で表し、相手が選択した手を×で表す。 〔手順〕 (1) 現在の盤面の状態を根とし、勝敗がつくか、引き分けとなるまでの考えられる全ての手を木構造で表現する。 (2) 葉の状態を次のように評価する。 ① 自分が勝ちの場合は10 ② 自分が負けの場合は-10 ③ 引き分けの場合は0 (3) 葉以外の節の評価値は、その節の全ての子の評価値を基に決定する。 ① 自分の手番の節である場合、子の評価値で最大の評価値を節の評価値とする。 ② 相手の手番の節である場合、子の評価値で最小の評価値を節の評価値とする。 ゲームが図の最上部にある根の状態のとき、自分が選択できる手は三つある。そのうちAが指す子の評価値は a であり、Bが指す子の評価値は b である。

相手の手番の節は子の評価値の最小値を取る

頻出基本情報技術者試験2022年度 公開問題 科目B15/アルゴリズムとプログラミング / アルゴリズム

三目並べの状態遷移木。根の状態(自分の手番):1行目 ×○×、2行目 ×○○、3行目は空欄3マス(全て未着手)。ここから自分が選べる手はA・Bを含め3通り(中央の矢印にラベルなし、左の矢印がA、右の矢印がB)。 A(左)の下:相手の手番の節。盤面は×○×/×○○/〇__(左下が〇)。その子(自分の手番、2つ):1つ目は×○×/×○○/〇×_ → その子(葉)は×○×/×○○/〇×〇=引き分け 評価値0。2つ目は×○×/×○○/〇_×ではなく×○×/×○○/〇_×(中央が空)→ その子(葉)は×○×/×○○/〇○×=勝ち 評価値10。 中央の矢印(ラベルなし)の下:相手の手番、盤面×○×/×○○/_〇_、その葉は勝ち 評価値10。 B(右)の下:相手の手番の節。盤面×○×/×○○/__〇。その子(自分の手番、2つ):1つ目は×○×/×○○/×_〇 → 葉は負け 評価値-10。2つ目は×○×/×○○/_×〇 → 葉は×○×/×○○/〇×〇=引き分け 評価値0。
三目並べの状態遷移木。根の状態(自分の手番):1行目 ×○×、2行目 ×○○、3行目は空欄3マス(全て未着手)。ここから自分が選べる手はA・Bを含め3通り(中央の矢印にラベルなし、左の矢印がA、右の矢印がB)。 A(左)の下:相手の手番の節。盤面は×○×/×○○/〇__(左下が〇)。その子(自分の手番、2つ):1つ目は×○×/×○○/〇×_ → その子(葉)は×○×/×○○/〇×〇=引き分け 評価値0。2つ目は×○×/×○○/〇_×ではなく×○×/×○○/〇_×(中央が空)→ その子(葉)は×○×/×○○/〇○×=勝ち 評価値10。 中央の矢印(ラベルなし)の下:相手の手番、盤面×○×/×○○/_〇_、その葉は勝ち 評価値10。 B(右)の下:相手の手番の節。盤面×○×/×○○/__〇。その子(自分の手番、2つ):1つ目は×○×/×○○/×_〇 → 葉は負け 評価値-10。2つ目は×○×/×○○/_×〇 → 葉は×○×/×○○/〇×〇=引き分け 評価値0。

選択肢

正解と解説

正解: a: 0, b: -10

手順(3)より、相手の手番の節は子の評価値の最小値を取ります。Aが指す節の子は、それぞれ引分け0と自分の勝ち10なので、最小値は0です。Bが指す節の子は、自分の負け-10と引分け0なので、最小値は-10になります。相手は自分にとって最も不利な手を選ぶ、という前提が最小値を取る理由です。

選択肢ごとの解説

出典:令和4年度 公開問題 基本情報技術者試験 科目B 問15(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。