巴什博弈
今天打比賽的時候做到的,下來去看了一些資料,感覺蠻有意思的(學好了可以用來坑錢)
兩個頂尖聰明的人在玩遊戲,有n
'>
n個石子,每人可以隨便拿1−m
'>1−m
個石子,不能拿的人為敗者,問誰會勝利。
當石子有1−m
'>1−m
個時,毫無疑問,先手必勝。
當石子有m+1
'>m+1
個時,先手無論拿幾個,後手都可以拿乾淨,先手必敗。
當石子有m+2
−2m'>m+2−2m
時,先手可以拿走幾個,剩下m+1
'>m+1
個,先手必勝。
我們不難發現,面臨m+1
'>m+1
個石子的人一定失敗。
這樣的話兩個人的最優策略一定是通過拿走石子,使得對方拿石子時還有m+1
'>m+1個。m
+1'>推廣:
先手會首先拿走r
'>r
個,接下來假設後手拿走x
'>x
個,先手會拿走m+1
−x'>m+1−x
個,這樣博弈下去後手最終一定失敗。
假設先手拿x
'>x
x個,後手一定會拿m+1
−x'>m+1−x
個,這樣下去先手一定失敗。
放題:
這裡是摸到最後一張牌的人為輸。
假設k=3,那麼後手就能把石子數控制為4,也就是k+1,這時一共是n-1張牌,留下的一張就是輸家摸的。如果n-1張牌能整除4的話,最後一張牌就會是先手摸,這時先手輸,否則後手輸,只要讓對方面對的牌數為k+1的倍數+1,自己就能贏。
這道題需要特殊考慮一下n=1和k>n-1時的情況。
**如下:
#includeint(參考部落格:main()
return0;
}
eof
博弈論入門
博弈論 是二人或多人在平等的對局中各自利用對方的策略變換自己的對抗策略,達到取勝目標的理論。博弈論是研究互動決策的理論。博弈可以分析自己與對手的利弊關係,從而確立自己在博弈中的優勢,因此有不少博弈理論,可以幫助對弈者分析局勢,從而採取相應策略,最終達到取勝的目的。一.bash博弈 問題 只有一堆n個...
博弈論入門
參考 三個簡單的博弈論問題 博弈 1066 bash遊戲 原題傳送 有一堆石子共有n個。a b兩個人輪流拿,a先拿。每次最少拿1顆,最多拿k顆,拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出n和k,問最後誰能贏得比賽。例如n 3,k 2。無論a如何拿,b都可以拿到最...
博弈論入門
什麼是博弈 通俗地講,博弈就是指遊戲中的一種選擇策略的研究。博弈的英文為 game 我們一般將它翻譯成 遊戲 而在英語中,game 的意義不同於漢語中的遊戲,它是人們遵循一定規則的活動,進行活動的人的目的是讓自己 贏 我們在和對手競賽或遊戲的時候怎樣使自己贏呢?這不但要考慮自己的策略,還要考慮其他人...