1樓:
後手必勝。
因為三種操作都不改變棋子總數的奇偶性,所以只有當左右兩堆棋子數量都為零時無合法操作,即當且僅當你執行完操作後無棋子時獲勝,以此倒推即可得是否有必勝的策略。以左邊棋子數為橫座標、右邊棋子數為縱座標繪圖,可得下圖,其中紅色代表當自己操作完成後有該座標表示棋子數時有必勝策略,藍色代表當自己操作完成後有該座標表示棋子數時對方有必勝策略。
如圖所示,先手操作後必落在藍點上,此時後手選擇並在後面一直選擇能落在紅點上的操作即可。
# -*- coding: utf-8 -*-import
numpy
asnp
import
matplotlib.pyplot
aspltm,
n=8,
8net=np
.zeros((m
+n+5
,n+5
))foriin
range((m
+n)//
4+1):
net[4*
i,0]
=1net[4*
i+2,
0]=-
1net[4
*i+1
,1]=
-1net[4*
i+3,
1]=-
1foriin
range(n
//2+1
):net[0
,2*i
]=1net[1
,2*i
+1]=
-1fori
inrange(4
,m+n
+1,2
):forjin
range(2
,n+1
):if
i>j:
flag
=net[i
-j+1
,j-1
]+net[i-
j-1,
j-1]
+net[i
-j-2
,j]if
flag
==-3
:net[i
-j,j
]=1else
:net[i
-j,j
]=-1
fori
inrange(n
+1):forjin
range(m
+n+1
):if
net[j,
i]==-1
:plt
.scatter(i
,j,color
='b'
,marker
='o')if
net[j,
i]==1
:plt
.scatter(i
,j,color
='r'
,marker
='o'
)x_ticks=np
.linspace(0
,8,9
)y_ticks=np
.linspace(0
,16,17
)plt
.xticks
(x_ticks
)plt
.yticks
(y_ticks
)plt
.grid
()plt
.xlabel(u
'左邊棋子數'
,fontproperties
='SimHei'
)plt
.ylabel(u
'右邊棋子數'
,fontproperties
='SimHei'
)plt
.show()
在兩人拿棋子的博弈論問題中怎麼樣獲勝?
tosearchfor 從簡單問題開始研究,首先研究兩堆球的問題。設有兩堆球,球數分別為A和B,其中A 0,B 0且A B均為自然數。當A 1,B 0,先起手的拿走B數量的球,後手的只剩A 1個球拿 因此,當A 1,B 0,先手必勝。當A 1,B 1時,先手的可拿走A數量的球,先手必勝。那麼,當A ...
如何理解博弈論對經濟學的影響?
caoglish 亞當斯密說 市場有隻手,但我看不見。馮諾依曼說 我覺得這隻手可能在博弈論裡。古諾說 這不就是我之前看到的那只手嗎。 竹杖笀鞋 這麼說吧 現代微觀經濟學的重要理論工具就是博弈論,它不但繼承了用嚴格數學語言闡述理論,而且可以通過推演得出一些出乎意料又合情合理的結論。相比之下,巨集觀經濟...
如何從博弈論的角度理解 黑暗森林法則 ?
Dawn Lee 我們來建構乙個簡單的博弈論模型簡單分析一下,假定文明 A B 在宇宙相遇,我們無法第一時間了解對方的具體情況 進化水平,科技水平等 我們需要採取的策略為攻擊 不攻擊 如果一方發動攻擊而另一方不發動攻擊,則不發動攻擊的一方由於被毀滅得0分,而發動攻擊的一方因為消除了潛在威脅且有可能佔...