基本情報技術者試験 科目B サンプル問題 問15の解説|三目並べの木から評価値を求める

基本情報技術者試験

科目B サンプル問題 問15難易度 ★★木構造・評価値・ゲームの状態遷移最終更新 2026-09-22

盤面の中身は、読まなくて大丈夫です。勝ち・負け・引き分けは図にもう書いてあるので、あとは数を下から上へ持ち上げるだけ。気をつけることは1つだけです。

難易度 ★★(当サイトの目安)── プログラムは無い。手順が読めれば、木の段ごとに最大と最小を取るだけ。4段階の決め方は科目B 最短合格の戦略にあります。

出題

読み慣れない言い方があっても大丈夫です。次の節にまとめてあります。

出典:基本情報技術者試験 科目B サンプル問題 問15

次の記述中の  a  と  b  に入れる正しい答えの組合せを,解答群の中から選べ。

三目並べにおいて自分が勝利する可能性が最も高い手を決定する。次の手順で,ゲームの状態遷移を木構造として表現し,根以外の各節の評価値を求める。その結果,根の子の中で最も評価値が高い手を,最も勝利する可能性が高い手とする。自分が選択した手を○で表し,相手が選択した手を×で表す。

〔手順〕

(1) 現在の盤面の状態を根とし,勝敗がつくか,引き分けとなるまでの考えられる全ての手を木構造で表現する。

(2) 葉の状態を次のように評価する。

① 自分が勝ちの場合は 10 / ② 自分が負けの場合は-10 / ③ 引き分けの場合は 0

(3) 葉以外の節の評価値は,その節の全ての子の評価値を基に決定する。

① 自分の手番の節である場合,子の評価値で最大の評価値を節の評価値とする。

② 相手の手番の節である場合,子の評価値で最小の評価値を節の評価値とする。

ゲームが図の最上部にある根の状態のとき,自分が選択できる手は三つある。そのうち A が指す子の評価値は  a  であり,B が指す子の評価値は  b  である。

三目並べの状態遷移の木。根は自分の手番で、下段が3マスとも空いた盤面。根から3本の矢印が出て、左が A、右が B。相手の手番の段には3つの盤面があり、中央の盤面は自分の勝ちで評価値10。A の盤面からは自分の手番の段へ2つ、B の盤面からも2つ枝分かれする。B の左の子は自分の負けで評価値-10。いちばん下の決着した段には3つの盤面があり、左から引き分け0、勝ち10、引き分け0。

図 三目並べの状態遷移(正典 p25 の図。作図は当サイト)

解答群

a b
ア 0 -10
イ 0 0
ウ 10 -10
エ 10 0

※ 〔手順〕の①②③ は、原本では1つずつ改行して並んでいます(字句は変えていません)。

答えだけ先に見る

正解は ア(a = 0、b = -10)です。

この問題に出てくる言葉

木の言い方 ── 読み方の早見表をひらく
言葉 この問題では
節(せつ) 木のひとつひとつの点。この問題では盤面1枚が1つの節です
根(ね) いちばん上の節。いまの盤面のことです
子 ある節から矢印が出ている先の節。そこから1手指した後の盤面です
葉(は) 子を持たない節。この問題では勝敗が決まったか、引き分けになった盤面で、図に「勝ち」「負け」「引き分け」と書いてあります
評価値 その盤面が自分にとってどれくらい良いかを表す数。葉は 10/-10/0、葉以外は〔手順〕(3)で決めます
手番(てばん) その盤面で次に指すのが誰か。図では段ごとに「自分の手番」「相手の手番」と書いてあります

盤面は読まなくていい

盤面が11枚も並んでいて身構えますが、a と b を出すのに、盤面の中身は一度も使いません。勝ち・負け・引き分けとその評価値は、図の葉にもう書いてあるからです。

a は A の枝だけ、b は B の枝だけで決まります。中央の子(勝ち 10)はどちらにも関係しないので、A と B の枝に分けて、葉から上へ見ていきます。

葉から1段ずつ上げて a と b を決める

使うのは〔手順〕の(3)だけです。上の出題から抜き出しておきます。

〔手順〕(3) 葉以外の節の評価値は,その節の全ての子の評価値を基に決定する。

① 自分の手番の節である場合,子の評価値で最大の評価値を節の評価値とする。

② 相手の手番の節である場合,子の評価値で最小の評価値を節の評価値とする。

※ 上の〔手順〕からの抜粋です(1字も変えていません)。

葉から上へ、1段ずつ持ち上げる

点線の箱=図に書いてある葉の値 / 琥珀の箱=〔手順〕(3)で決めた値。箱の下段が決め方です。下の箱から順に読みます。節の名前 A-1・A-2・B-1・B-2 は当サイトで付けたもの

A の枝 ── a が決まる

A(= a)相手の手番
② 子の最小
0A-1 の 0 と A-2 の 10
→ 小さいほう

A-1自分の手番
① 子の最大
0子は 0 の1つだけ

葉(引き分け)0

A-2自分の手番
① 子の最大
10子は 10 の1つだけ

葉(勝ち)10

B の枝 ── b が決まる

B(= b)相手の手番
② 子の最小
-10B-1 の -10 と B-2 の 0
→ 小さいほう

B-1(葉・負け)-10子はいない
図の値のまま

B-2自分の手番
① 子の最大
0子は 0 の1つだけ

葉(引き分け)0

解答群を見る

a = 0、b = -10 ── ア です。

答え合わせ

ア a = 0、b = -10

外れる3つは、どれも相手の手番の節で、最小ではなく最大をとった形です。A で最大をとると 10(ウ・エ)、B で最大をとると 0(イ・エ)。つまり4つの選択肢は、相手の手番で最小をとったかどうかの組合せになっています。

相手の手番で最小をとるのは、相手は自分にとっていちばん都合の悪い手を選ぶ、と考えるからです。A の先には自分が勝てる道(10)もありますが、そこへ進むかどうかを決めるのは相手。数えられるのは、相手が選ぶほう(0)だけです。

なお、この問題では問われていませんが、根の子は A = 0、中央 = 10、B = -10。最も勝利する可能性が高い手は中央で、実際そこに進めばその場で自分の勝ちです。

次に読む

この問題でどこに手間取ったかで、行き先が変わります。

この記事で引用した資料

いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では問題文を改変せずに引用しています。

Copied title and URL