階梯博弈(Stair Nim)

2021-07-10 22:14:53 字數 936 閱讀 7730

首先是對階梯博弈的闡述...博弈在一列階梯上進行...每個階梯上放著自然數個點..兩個人進行階梯博弈...每一步則是將乙個集體上的若干個點( >=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)

階梯博弈!下面闡述一下我對於階梯博弈的理解.首先是對階梯博弈的闡述.博弈在一列階梯上進行.每個階梯上放著自然數個點.兩個人進行階梯博弈.每一步則是將乙個集體上的若干個點 1 移到前面去.最後沒有點可以移動的人輸.如這就是乙個階梯博弈的初始狀態 2 1 3 2 4 只能把後面的點往前面放.如何來分析這...

趣味博弈論 階梯博弈

階梯博弈是一種nim遊戲的變類,它的主要思想是對奇數階梯進行nim遊戲.什麼是階梯博弈?就是給你乙個階梯,這個階梯每一級上有一堆石子,你可以每次選擇某一級,將這一級上的一些石子推到下一級.當第一級的石子被推下就到了地上.現在兩個人輪流取石子.當某個人取時,剛好階梯上沒有石子,這個人就輸了.其實就是對...

階梯博弈 學習筆記

今天剛做了一道題。poj 1704 題目大意 georgia and bob在玩遊戲 求alice心理陰影面積 在乙個1行的格仔上,有n個棋子,兩人輪流操作,georgia永遠先手,每次操作需要將乙個棋子向左移動,至少要移動乙個格仔,但不可以移到左邊緣,或者越過其他的格仔,無法操作的人輸,問對於給出...