S11G5 Nim遊戲與二進位
Nim 是一个双人游戏,有三堆数 3,4,5 两人轮流从一堆中取任意多颗子,取到最后一个的人获胜。这次就用 GGB 来实作这个游戏介面,并且用数学来分析其必胜法。

任务一 用序列画圆圈

說明:
利用序列構造系列圓,A列的圓以(1,k)為圓心,0.5為半徑,k的範圍從1到A2,B、C、D列以此類推.
操作:
表格區A到D列前兩行輸入:3、 4 、5、 6
As=Sequence(Circle((1,k), 0.5) , k, 1,A2)
Bs=Sequence(Circle((3,k), 0.5) , k, 1,B2)
Cs=Sequence(Circle((5,k), 0.5) , k, 1,C2)
Ds=Sequence(Circle((7,k), 0.5) , k, 1,D2)
任務二 用按鈕控制增減

說明:
為了達到更直觀模擬遊戲的效果,利用按鈕腳本設置增減,按一次取一個,為避免不夠取出現負數,在A2-1與0之間取最大值,最後重置還原.
操作:
SetValue(A2,max(A2-1,0))
SetValue(B2,max(B2-1,0))
SetValue(C2,max(C2-1,0))
SetValue(D2,max(D2-1,0))
SetValue(A2,A1)
SetValue(B2,B1)
SetValue(C2,C1)
SetValue(D2,D1)
任務三 轉換為二進位判斷必勝局

說明:
此遊戲的必勝狀態可用二進位來表示,在此節先將每個數的二進位結果輸入在下方。
以 13 為例,其可表示為 1 + 4+ 8,因此其二進位為 1101。要取得每個對應位的數值,可利用整數除法與取余數來達成。例如 13/4= 3 ...1 ,而 mod(3,2)= 1 ,因此 13 在 二進位中,4 所對應的數值就為 1。
操作:
在F列输入:1、 2、 4、 8
在A3输入:mod(floor(A$2/$F3),2)
在A4输入:mod(floor(A$2/$F4),2),再复制
在E3输入:mod(Sum(A3:D3),2),再复制
小結
從最後的數學分析可知用二進位構造不變量可保證Nim遊戲必勝,二進位有關的應用還可參照

連接
【GGB】https://www.geogebra.org/classic/yg5fkzvm
【Bili】https://www.bilibili.com/video/BV1Gv41137qQ?p=2
【YouTube】https://www.youtube.com/playlist?list=PLXH05kw-i_5K29wEnj12-hDBapErw9pea