藍橋杯歷屆試題-高僧鬥法(博弈論)

藍橋杯歷屆試題-高僧鬥法是一道尼姆堆博弈論(Nim遊戲),本文只對尼姆堆問題進行粗略的解釋,不對題目進行講解,我相信只要搞清楚了尼姆堆這種博弈論問題之後,這道題將會迎刃而解。

一般的Nim遊戲是這樣的:有n個石堆,每堆裏有數量一定的石子,兩人從其中任意一堆中取任意數量的石子(不能超過這堆石子數的最大值),不能不取,最後某個人取完,所有石堆中的石子數量都爲0時,另一個人就爲輸。

這裏要先介紹一些概念:定義兩個狀態,分別爲N和P,N代表Next-position,可以理解爲先手必勝狀態,P代表Previous-position,可以理解爲後手必勝狀態。(如果實在搞不清楚這個也沒關係,直接看結論)

結論:當遊戲開始時,各個石堆(a1,a2,a3…an),當且僅當a1 ^ a2 ^ a3 ^ … ^an=0時它爲P。即先手必敗。(至於這個結論是如何得出的,可以百度深入瞭解一下)

所以我們以後遇到這種博弈論問題時,直接把這些石頭的數量相互異或,如果結果爲0,則先手必敗;否則先手必勝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章