1. 程式人生 > >[學習筆記]nim遊戲

[學習筆記]nim遊戲

學習 每次 遊戲 高度 nim遊戲 必勝策略 不為 垃圾桶 選擇

普通nim遊戲:

n堆石子,每個人每次對著一堆拿若幹個。不能拿者判輸。

只有兩種情況,先手必勝,先手必敗。

先手必勝當且僅當:a1^a2^...^an!=0

證明:

設=x(x不為0),選擇最高位和x一樣的ai,顯然有ai^x<ai

階梯型nim遊戲

階梯型nim遊戲:高度單調的階梯。每次只能把a[i]中選擇x個,放到a[i-1]中,或者把a[1]中扔掉若幹個。問有無先手必勝策略。

等價於對奇數堆做nim遊戲。

第一次先手,就把奇數堆按照必勝策略移動。偶數堆不管,當做垃圾桶。

如果後手移動奇數堆到偶數堆,就按照奇數堆必勝策略移動。

反之,就把後手移動過來x的奇數堆再往前移動x個。對於奇數堆的狀態不變。早晚會把偶數堆移動完。

所以,等價。

[學習筆記]nim遊戲