網上題目:
有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,假設雙方都採取最好的策略,請問有沒有必勝的策略。如果沒有請說出原因。
我的想法:
如果兩堆石子的數量為(0,m)或(m,0),則先取者直接取走m個石子即可取勝。
如果兩堆石子的數量為(m,m),則先取者直接取走(m,m)個石子即可取勝。
如果兩堆石子的數量為(2,1)或(1,2),那麼後取者勝。取法只有(2)-》(1),(1,1)--》(1)兩種。先取者不論如何都不能一次取完,後取者勝。
如果兩堆石子的數量為(m,1)或(1,m),先取者勝。取法(m-2)後,餘(2,1)。
如果為(m,n),有乙個取者如果把結果變成(m,1)或(1,m)式,(m>2)則這個取者敗。如果取者把先結果變成(2,1)或(1,2)式,則這個取者勝。
因此雙方都盡量避免出現取走後出現(0,m),(m,m),(m>2,1)的局勢。都盡量拿走後出現(2,1)或(1,2)的局勢,即可獲勝。
有點像下象棋,要求最後的結果按照某個套路來將對方打敗。
取石子遊戲
如下 include include intmain k b a temp floor k 1.0 sqrt 5 2.0 if temp a printf 0 n else printf 1 n return 0 一 巴什博奕 bash game 只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每...
取石子遊戲
有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。in...
取石子遊戲
取石子遊戲 time limit 1000ms memory limit 10000k total submissions 25176 accepted 7961 description 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆...