今天在poj做了一道博弈題..進而了解到了階梯博弈...下面闡述一下我對於階梯博弈的理解..
首先是對階梯博弈的闡述...博弈在一列階梯上進行...每個階梯上放著自然數個點..兩個人進行階梯博弈...每一步則是將乙個集體上的若干個點( >=1 )移到前面去..最後沒有點可以移動的人輸..
如這就是乙個階梯博弈的初始狀態 2 1 3 2 4 ... 只能把後面的點往前面放...如何來分析這個問題呢...其實階梯博弈經過轉換
可以變為nim..把所有奇數階梯看成n堆石子..做nim..把石子從奇數堆移動到偶數堆可以理解為拿走石子..就相當於幾個奇數堆的石子在做nim..( 如所給樣例..2^3^4=5 不為零所以先手必敗)為什麼可以這樣來轉化?
假設我們是先手...所給的階梯石子狀態的奇數堆做nim先手能必勝...我就按照能贏的步驟將奇數堆的石子移動到偶數堆...如果對手也是移動奇數堆..我們繼續移動奇數堆..如果對手將偶數堆的石子移動到了奇數堆..那麼我們緊接著將對手所移動的這麼多石子從那個偶數堆移動到下面的奇數堆...兩次操作後...相當於偶數堆的石子向下移動了幾個..而奇數堆依然是原來的樣子...即為必勝的狀態...就算後手一直在移動偶數堆的石子到奇數堆..我們就一直跟著他將石子繼續往下移..保持奇數堆不變...如此做下去..我可以跟著後手把偶數堆的石子移動到0..然後你就不能移動這些石子了...所以整個過程..將偶數堆移動到奇數堆不會影響奇數堆做nim博弈的過程..整個過程可以抽象為奇數堆的nim博弈...
其他的情況...先手必輸的...類似推理...只要判斷奇數堆做nim博弈的情況即可...
為什麼是只對奇數堆做nim就可以...而不是偶數堆呢?...因為如果是對偶數堆做nim...對手移動奇數堆的石子到偶數堆..我們跟著移動這些石子到下乙個奇數堆...那麼最後是對手把這些石子移動到了0..我們不能繼續跟著移動...就只能去破壞原有的nim而導致勝負關係的不確定...所以只要對奇數堆做nim判斷即可知道勝負情況...
我談階梯博弈 Staircase Nim
今天在poj做了一道博弈題.進而了解到了階梯博弈.下面闡述一下我對於階梯博弈的理解.首先是對階梯博弈的闡述.博弈在一列階梯上進行.每個階梯上放著自然數個點.兩個人進行階梯博弈.每一步則是將乙個集體上的若干個點 1 移到前面去.最後沒有點可以移動的人輸.如這就是乙個階梯博弈的初始狀態 2 1 3 2 ...
我談階梯博弈 Staircase Nim
今天在poj做了一道博弈題.進而了解到了階梯博弈.下面闡述一下我對於階梯博弈的理解.首先是對階梯博弈的闡述.博弈在一列階梯上進行.每個階梯上放著自然數個點.兩個人進行階梯博弈.每一步則是將乙個集體上的若干個點 1 移到前面去.最後沒有點可以移動的人輸.如這就是乙個階梯博弈的初始狀態 2 1 3 2 ...
階梯博弈(Stair Nim)
首先是對階梯博弈的闡述.博弈在一列階梯上進行.每個階梯上放著自然數個點.兩個人進行階梯博弈.每一步則是將乙個集體上的若干個點 1 移到前面去.最後沒有點可以移動的人輸.如這就是乙個階梯博弈的初始狀態 2 1 3 2 4 只能把後面的點往前面放.如何來分析這個問題呢.其實階梯博弈經過轉換可以變為nim...