• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            xiaoguozi's Blog
            Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····

            兩人游戲: 給定K堆火柴,每堆火柴數為N1,N2,N3,...Nk,
            兩人輪流拿,看誰拿到最后一根火柴誰就勝利。
                規則:每次只能從一堆中拿,每次至少拿一根,最多可拿光。
            假若我先走,求教我必勝的策略。
                比如:有三堆,1  2  3

            ---------------------------------------------------------------

            求出 N = N1^N2^N3^…^Nk (“^”為C++中的按位異或運算符)。
            若 N 等于零,稱此狀態為必勝狀態,否則稱為非必勝狀態。
            從必勝狀態中改小一個且只改小一個數字是不可能到達另一個必勝狀態的。
            從非必勝狀態中一定可以找到一個數n,使得n<Ni且N1^N2^…^Ni-1^n^Ni+1^…^Nk=0 (其中1<=i<=k),也就是說從非必勝狀態一定可以只改小一個數字而到達必勝狀態。
            若某一方保證每次拿火柴后當前狀態都是必勝狀態,此方將勝出(當然要求相對此方的初始狀態為非必勝狀態)。

            ---------------------------------------------------------------

            發信人: Nature (成長●快樂●煩惱), 信區: Mathematics
            標  題: 關于取火柴問題的解答
            發信站: 南京大學小百合站 (Tue May  7 09:22:18 2002), 站內信件

            題目1:    今有若干堆火柴,兩人依次從中拿取,規定每次只能從一堆中取若干根,
            可將一堆全取走,但不可不取,最后取完者為勝,求必勝的方法。

            題目2:    今有若干堆火柴,兩人依次從中拿取,規定每次只能從一堆中取若干根,
            可將一堆全取走,但不可不取,最后取完者為負,求必勝的方法。

            解答如下:

            先解決第1題

            定義1:若所有火柴數異或為0,則該狀態被稱為利他態,用字母T表示;否則,
            為利己態,用S表示。

            定理1:對任何S態,存在方法,從其中取一堆中的若干根,使狀態變為T態。
            引理1.1 :A(i)為非副整數,i=1..n, 記c=A(1) xor A(2) xor ……  xor A(n),

            若c>0,則存在A(t), A(t) xor c <A(t)
            證明: 把c表示成二進制,記它的二進制數的最高位為第p位,
              則必然存在一個A(t),它二進制的第p位也是1。(否則,若所有的A(i)的第p位都是0,
            c的第p位就也為0,矛盾!)
              x=a(t) xor c 的第p位將為1 xor 1,即0;
              又因為c的最高位為p,所以x高于p位的值不變。所以必有x<a(t).即a(t) xor 
            c<a(t)
            .
              命題得證。

            再來證定理1.
            證明:
             設共有n堆火柴,每堆的數目分別為A(i),i=1..n,A(i)為非副整數.
             記c=A(1) xor A(2) xor ……  xor A(n),
             因為是S態,所以 c>0;
             所以存在A(t), A(t) xor c <A(t)。
             A(t)' = A(t) xor c <A(t)
              c' = A(1) xor A(2) xor …  xor A(t)' xor … xor A(n)
               = A(1) xor A(2) xor …  xor A(t) xor c xor … xor A(n)
               = A(1) xor A(2) xor …  xor A(t) xor … xor A(n) xor c
               = c xor c = 0
            所以,用把第t堆由A(t)根取成A(t)' 根(A(t)' = A(t) xor c <A(t) ),狀態成
            為T態。
            故命題成立。    #

            定理2:T態,取任何一堆的若干根,都將成為S態。
            證明:反證法:
              反設存在一堆,記為第m堆,從中取了若干根,根數由A(m)變為A(m)' .
              A(m)>A(m)' 狀態均為T態。
              記c=A(1) xor A(2) xor … xor A(m) xor…  xor A(n),
              記c'=A(1) xor A(2) xor … xor A(m)' xor…  xor A(n),
              c=0;c'=0;
              所以有 0= A(1) xor A(2) xor … xor A(m) xor…  xor A(n)
            = A(1) xor A(2) xor … xor A(m-1) xor A(m+1) xor… xor A(n) xor A(m)
            = d xor A(m)
                 d= A(1) xor A(2) xor … xor A(m-1) xor A(m+1) xor… xor A(n)
            故 A(m)=d
                    同理, d xor A(m)' =0
               A(m)'= d
              所以,A(m)'=A(m) . 矛盾!
              故反設不成立。原命題成立。 #

            定理 3:S態,只要方法正確,必贏。
             最終勝利即由S態轉變為T態,任何一個S態,只要把它變為T態,(由定理一,
            可以把它變成T態。)對方只能把T態轉變為S態(定理2)。這樣,所有S態向T態的轉變都可以
            有己方控制,對方只能被動地實現由T態轉變為S態。故S態必贏。 #
            定理4:T態,只要對方法正確,必敗。
             由定理3易得。


            我們再來處理第2題。我們會發現兩題會有一些相同之處,控制S->T態的人控制著
            主動權
            。經過分析,我們有以下結論:
            定義2:若一堆中僅有1根火柴,則被稱為孤單堆。若大于1根,則稱為充裕堆。
            定義3:T態中,若充裕堆的堆數大于等于2,則稱為完全利他態,用T2表示;若充
            裕堆的堆數等于0,則稱為部分利他態,用T0表示。
            定理4:不存在充裕堆數為1的T態。
            證明:
             孤單堆的根數異或只會影響二進制的最后一位,但充裕堆會影響高位(非最后一位)。

             一個充裕堆,高位必有一位不為0,則所有根數異或不為0。故不會是T態。
            定義4:S態中,若充裕堆的堆數大于等于2,則稱為完全利己態,用S2表示;若充
            裕堆的堆數等于1,則稱為自主利己態,用S1表示; 若充裕堆的堆數等于0,則稱為部分利
            己態,用S0表示。

            定理4:S0態,即僅有奇數個孤單堆,必敗。T0態必勝。
            證明:S0態,其實就是每次只能取一根。每次第奇數根都由己取,第偶數根都由對
            方取,所以最后一根必己取。敗。
              同理, T0態必勝#
            定理5:S1態,只要方法正確,必勝。
            證明:若此時孤單堆堆數為奇數,把充裕堆取完;否則,取成一根。
               這樣,就變成奇數個孤單堆,由對方取。
               由定理4,對方必輸。己必勝。 #
            定理6:S2態不可轉一次變為T0態。
            證明:充裕堆數不可能一次由2變為0。得證。 #
            定理7:S2態可一次轉變為T2態。
            證明:由定理1,S態可轉變為T態,態可一次轉變為T態
               又由定理6,S2態不可轉一次變為T0態,
               所以轉變的T態為T2態。 #
            定理8:T2態,只能轉變為S2態或S1態。
            證明:. 由定理2,T態必然變為S態。
                 由于充裕堆數不可能一次由2變為0,所以此時的S態不可能為S0態。
              命題得證。
            定理9:S2態,只要方法正確,必勝.
            證明:方法如下:
               1) S2態,就把它變為T2態。(由定理7)
               2) 對方只能T2轉變成S2態或S1態(定理8)
              若轉變為S2, 轉向1)
              若轉變為S1, 這己必勝。(定理5)
            定理10:T2態必輸。
            證明:同9。
             綜上所述,必輸態有: T2,S0
                 必勝態:   S2,S1,T0.
            兩題比較:
            第一題的全過程其實如下:
             S2->T2->S2->T2-> …… ->T2->S1->T0->S0->T0->……->S0->T0(全0)
            第二題的全過程其實如下:
             S2->T2->S2->T2-> …… ->T2->S1->S0->T0->S0->……->S0->T0(全0)
            下劃線表示勝利一方的取法。
                是否發現了他們的驚人相似之處。
            我們不難發現(見加黑部分),S1態可以轉變為S0態(第二題做法),也可以轉變為
            T0(第一題做法)。哪一方控制了S1態,他即可以有辦法使自己得到最后一根(轉變為
            T0),也可以使對方得到最后一根(轉變為S0)。
             所以,搶奪S1是制勝的關鍵!
             為此,始終把T2態讓給對方,將使對方處于被動狀態,他早晚將把狀態變為S1.
            (見定理9的證明).

            posted on 2008-01-28 10:51 小果子 閱讀(197) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記
            亚洲精品乱码久久久久久自慰| 99久久精品免费| 亚洲中文字幕久久精品无码APP| 中文精品久久久久人妻不卡| 国产精品久久久久国产A级| 亚洲国产成人久久综合一| 色婷婷狠狠久久综合五月| 日产精品久久久久久久性色| AV狠狠色丁香婷婷综合久久 | 精品国产乱码久久久久久呢| 久久99精品久久久久婷婷| 伊人久久大香线蕉精品不卡 | 人妻少妇久久中文字幕一区二区| 国产精品福利一区二区久久| 中文字幕久久亚洲一区| 久久午夜电影网| 麻豆一区二区99久久久久| 性高湖久久久久久久久AAAAA| 97精品国产91久久久久久| 久久天天躁狠狠躁夜夜不卡| 国产L精品国产亚洲区久久| 久久精品亚洲精品国产色婷| 无码8090精品久久一区| 精品无码人妻久久久久久| 久久99精品久久久久久动态图| 久久九九兔免费精品6| 久久人妻少妇嫩草AV无码蜜桃| 色综合合久久天天综合绕视看| 亚洲AV日韩AV天堂久久| 久久久久亚洲AV成人网人人网站| 久久久久亚洲AV成人网人人网站 | 亚洲国产成人久久一区久久| 国产精品成人无码久久久久久 | 久久无码AV一区二区三区| 久久久久亚洲精品无码网址| 91亚洲国产成人久久精品| 国产成人香蕉久久久久| 久久本道久久综合伊人| 精品国产乱码久久久久久浪潮| 国产精品激情综合久久| 国产一区二区精品久久岳|