數數奪標必勝秘訣

| 名詞定義 | 倒推法 | 餘數法 | 中途計算 | 中途戰法 |
名詞定義
    為了方便說明,下面先定義幾個名詞
  • 勝點:
    1. 當累計數是某一個數字時,如果輪到下一步的人一定會負;我們就把這個數字叫做勝點。
    2. 遊戲者選取數字時必須要搶佔勝點,誰能搶佔到勝點,就能使對方負而自己勝。
  • 負點:
    1. 當累計數是某一個數字時,如果輪到下一步的人一定會勝;我們就把這個數字叫做負點。
    2. 遊戲者選取數字時必須要避開負點,否則就是對方勝而自己負了。
  • 可數數:
    1. 玩者可選取的最大數字。
    2. 例如:在「由一號玩家開始,輪流在 1∼6 中選取一個數字,選取的數字累加到 30 的人勝」 這個遊戲中,可數數就是 6 。
倒推法
  • 以下用「由一號玩家開始,輪流在 1∼6 中選取一個數字,選取的數字累加到 30 的人勝」這個遊戲 來示範倒推法的推算方式:
    1. 當累計數是 30 時,勝負已分曉,累計者勝而輪到下一步的人為負,所以 30 是勝點。 誰能使累計數成為 30 他就勝了。
    2. 當累計數是 29 時,輪到下一步的人只要選取 1 就可使得累計數成為 30 而得勝,所以 29 是負點。
    3. 當累計數是 28 時,輪到下一步的人只要選取 2 就可使得累計數成為 30 而得勝,所以 28 是負點。
    4. 當累計數是 27 時,輪到下一步的人只要選取 3 就可使得累計數成為 30 而得勝,所以 27 是負點。
    5. 當累計數是 26 時,輪到下一步的人只要選取 4 就可使得累計數成為 30 而得勝,所以 26 是負點。
    6. 當累計數是 25 時,輪到下一步的人只要選取 5 就可使得累計數成為 30 而得勝,所以 25 是負點。
    7. 當累計數是 24 時,輪到下一步的人只要選取 6 就可使得累計數成為 30 而得勝,所以 24 是負點。
    8. 當累計數是 23 時,輪到下一步的人不論選取 1∼6 中的哪一個數字,都會 使得累計數停在負點,所以 23 是勝點。誰能使累計數成為 23 他就勝定了。
    9. 當累計數是 22 時,輪到下一步的人只要選取 1 就可使得累計數成為 23 而得勝,所以 22 是負點。
    10. 當累計數是 21 時,輪到下一步的人只要選取 2 就可使得累計數成為 23 而得勝,所以 21 是負點。
    11. 當累計數是 20 時,輪到下一步的人只要選取 3 就可使得累計數成為 23 而得勝,所以 20 是負點。
    12. 當累計數是 19 時,輪到下一步的人只要選取 4 就可使得累計數成為 23 而得勝,所以 19 是負點。
    13. 當累計數是 18 時,輪到下一步的人只要選取 5 就可使得累計數成為 23 而得勝,所以 18 是負點。
    14. 當累計數是 17 時,輪到下一步的人只要選取 6 就可使得累計數成為 23 而得勝,所以 17 是負點。
    15. 當累計數是 16 時,輪到下一步的人不論選取 1∼6 中的哪一個數字,都會 使得累計數停在負點,所以 16 是勝點。誰能使累計數成為 16 他就勝定了。
    16. ............................
    17. 由以上推演,我們很容易的可以發現:勝點就是 30、23、16、9、2。也就是說:本遊戲先手的人必勝, 他只要先選取 2,搶佔了勝點,就勝定了。
  • 以下再用「由一號玩家開始,輪流在 1∼6 中選取一個數字,選取的數字累加到 30 的人負」這個遊戲 來示範倒推法的推算方式:
    1. 當累計數是 30 時,勝負已分曉,累計者負而輪到下一步的人為勝,所以 30 是負點。
    2. 當累計數是 29 時,輪到下一步的人不論怎麼選都會使累計數超達到 30 而輸了, 所以 29 是勝點,誰能使累計數成為 29 他就勝了。
    3. 當累計數是 28 時,輪到下一步的人只要選取 1 就可使得累計數成為 29 而得勝,所以 28 是負點。
    4. 當累計數是 27 時,輪到下一步的人只要選取 2 就可使得累計數成為 29 而得勝,所以 27 是負點。
    5. 當累計數是 26 時,輪到下一步的人只要選取 3 就可使得累計數成為 29 而得勝,所以 26 是負點。
    6. 當累計數是 25 時,輪到下一步的人只要選取 4 就可使得累計數成為 29 而得勝,所以 25 是負點。
    7. 當累計數是 24 時,輪到下一步的人只要選取 5 就可使得累計數成為 29 而得勝,所以 24 是負點。
    8. 當累計數是 23 時,輪到下一步的人只要選取 6 就可使得累計數成為 29 而得勝,所以 22 是負點。
    9. 當累計數是 22 時,輪到下一步的人不論選取 1∼6 中的哪一個數字,都會 使得累計數停在負點,所以 22 是勝點。誰能使累計數成為 22 他就勝定了。
    10. 當累計數是 21 時,輪到下一步的人只要選取 1 就可使得累計數成為 22 而得勝,所以 21 是負點。
    11. 當累計數是 20 時,輪到下一步的人只要選取 2 就可使得累計數成為 22 而得勝,所以 20 是負點。
    12. 當累計數是 19 時,輪到下一步的人只要選取 3 就可使得累計數成為 22 而得勝,所以 19 是負點。
    13. 當累計數是 18 時,輪到下一步的人只要選取 4 就可使得累計數成為 22 而得勝,所以 18 是負點。
    14. 當累計數是 17 時,輪到下一步的人只要選取 5 就可使得累計數成為 22 而得勝,所以 17 是負點。
    15. 當累計數是 16 時,輪到下一步的人只要選取 6 就可使得累計數成為 22 而得勝,所以 17 是負點。
    16. 當累計數是 16 時,輪到下一步的人不論選取 1∼6 中的哪一個數字,都會 使得累計數停在負點,所以 16 是勝點。誰能使累計數成為 16 他就勝定了。
    17. ............................
    18. 由以上推演,我們很容易的可以發現:勝點就是 29、22、15、8、1。也就是說:本遊戲先手的人必勝, 他只要先選取 1,搶佔了勝點,就勝定了。
餘數法
  • 由倒推法,我們可以看出:勝點之間是有著一個固定的差數(下面就稱此數為公差),那就是 ( 1 + 可數數 )。
  • 雖然對於任意的設定我們全都可以用倒推法來推算出最小的勝點,但有時確實是蠻辛苦的,例如下面這一個常被 玩家用來唬初學者的遊戲:「由一號玩家開始,輪流在 1∼3 中選取一個數字,選取的數字累加到 100 的人勝」, 在不用紙筆的情況下,要用倒推法將最小的勝點找出來,是不太容易的。
  • 既然勝點間有連減公差的事實,那有沒有簡單的算法呢?當然有!除法不就是連減嗎? 所以只要找出第一個勝點(最大勝點)之後,可以使用除法把最小的勝點很容易的算出來,其算式如下:
    最小的勝點= 最大勝點 mod ( 1 + 可數數 )
    上式中的 mod 表示除法的餘數。
  • 以「由一號玩家開始,輪流在 1∼6 中選取一個數字,選取的數字累加到 30 的人勝」這個遊戲 來說,最大勝點= 30、可數數= 6, 所以最小勝點 = 30 mod 7,因為 30 ÷7 = 4 .... 2 所以 30 mod 7 = 2, 這個遊戲先手的人只要先選取 2 就可保証得勝了。
  • 以「由一號玩家開始,輪流在 1∼6 中選取一個數字,選取的數字累加到 30 的人負」這個遊戲 來說,最大勝點= 29、可數數= 6, 所以最小勝點 = 29 mod 7,因為 29 ÷7 = 4 .... 1 所以 29 mod 7 = 1, 這個遊戲先手的人只要先選取 1 就可保証得勝了。
數數奪標的中途計算
  • 本段要討論的中途計算包含以下兩種狀況,這時我們要求的不再是最小勝點,而是最佳應手 ( 在目前情況下 可搶佔到勝點的最好數字 ):
    1. 一般而言,數數奪標的累計數都是由 0 開始的,但有些喜歡變化的人, 會將累計數的起始值設定成大於 0 的數字;
    2. 別人已玩到一半了,你想看哪一個人掌握到勝點;
  • 以下再用「由一號玩家開始,輪流在 1∼6 中選取一個數字,選取的數字由 6 開始累加,累加到 30 的人勝」 這個遊戲來示範來解釋數數奪標的中途計算:
    1. 如果使用倒推法,過程完全不受影響,但當勝點由 30 、23、16 推算到 9 時,因下一個勝點已比 目前的累計數小了,所以就可以停止再倒推,因為 9 和 6 的差是 3 ,所以只要選取 3 就可以了。
    2. 如果使用餘數法時,
      最佳應手 = (最大勝點 - 累計數 + 1) mod ( 1 + 可數數 )
      因為 最佳應手 = (最大勝點 - 累計數 ) mod ( 1 + 可數數 )= ( 30 - 6 ) mod 7 = 3 , 所以只要選取 3 就可以了。
  • 以下再用「現在輪到一號玩家選取數字,可選取的數字是 1∼9 ,目前已累計到 30,當累加到 100 的人勝」 這個遊戲來示範,如果你是一號玩家,你該如何取數?
    1. 如果使用倒推法,當勝點由 100、90、80、70、60、50、40 推算到 30 時,發現勝點就是累計數, 所以就可以停止再倒推,因為對方已佔著勝點而必勝,反正都是輸,所以就隨意任取一個數字吧!。
    2. 如果使用餘數法時,因為最佳應手 = (最大勝點 - 累計數 ) mod ( 1 + 可數數 ) = ( 100 - 30 ) mod 10 = 0 表示 30 就是勝點,所以認輸隨便選取一個數字吧。
搶佔勝點之後的中途戰法
  • 雖然我們可以用倒推法、餘數法等方法將勝點或最佳應手求出,但是如果在遊戲的過程中要不斷的去推算, 也是一件十分煩人的工作,所以當我們已搶佔到勝點之後,如何因應對手的選數,就成了一個很重要的問題了。
  • 再回頭來觀察「由一號玩家開始,輪流在 1∼6 中選取一個數字,選取的數字累加到 30 的人勝」這個遊戲 吧!如果我們已搶佔 2 這個勝點,要如何才能搶佔下一個勝點 9 呢?
    1. 當對方選取 1,累計數為 3,我們只要選取 6 即可搶佔勝點 9 了。
    2. 當對方選取 2,累計數為 4,我們只要選取 5 即可搶佔勝點 9 了。
    3. 當對方選取 3,累計數為 5,我們只要選取 4 即可搶佔勝點 9 了。
    4. 當對方選取 4,累計數為 6,我們只要選取 3 即可搶佔勝點 9 了。
    5. 當對方選取 5,累計數為 7,我們只要選取 2 即可搶佔勝點 9 了。
    6. 當對方選取 6,累計數為 8,我們只要選取 1 即可搶佔勝點 9 了。
  • 發現了嗎?原來只要使 :
    對方選取的數字 + 自己所選取的數字 = ( 1 + 可數數 )
    就可以了。所以只有第一步需要推算,然後就可笑納勝利了。
  • 以下再用「現在輪到一號玩家選取數字,可選取的數字是 1∼3 ,當累加到 100 的人勝」 這個遊戲來示範,如果我們已搶佔 20 這個勝點,要如何才能搶佔下一個勝點 24 呢?因為 ( 1 + 可數數 ) = 4
    1. 當對方選取 1,我們只要選取 ( 4 - 1 ) = 3 即可搶佔勝點 24 了。
    2. 當對方選取 2,我們只要選取 ( 4 - 2 ) = 2 即可搶佔勝點 24 了。
    3. 當對方選取 3,我們只要選取 ( 4 - 3 ) = 1 即可搶佔勝點 24 了。
 
 
 
本網頁建置日期:91.03.21 | 最近更新日期:91.11.27  | 回上頁 | 回首頁 |