無窮下降法 數的按位異或與隨機博弈

2021-04-24 18:47:14 字數 2281 閱讀 2539

無窮下降法是著名的業餘數學家費馬提出的,也正是因為這個方法他才敢在書頁邊上聲稱自己已經找到了乙個巧妙的方法證明費馬猜想(x^n+y^n=z^n在n>2時沒有正整數解,x^y表示x的y次方)。意外的是這個方法並沒有想象中的那樣神奇,它僅僅可以證明對於某些特殊的n才能成立(譬如說4),思路是:假設存在一組解(x0,y0,z0),那麼由這一組解可以得到一組新的解(x1,y1,z1),並且滿足z0>z1,這個過程可以重複進行,然而這是不可能的,這樣必然使得zi「下降」到0,所以原方程沒有正整數解。這個方法應該和數學歸納法齊名的,然而它太類似反證法了:上述證明可以寫成假設一組解(x0,y0,z0)是所有正整數解中滿足z最小的一組解,這時再構造出一組新的解(x1,y1,z1)滿足z0>z1,與假設矛盾,所以原方程沒有正整數解。也不知道是不是由於這個原因,高中數學書中對這個方法隻字未提。

隨機博弈指的是這樣的乙個博弈遊戲,目前有任意堆石子,每堆石子個數也是任意的,雙方輪流從中取出石子,規則如下:

1〉每一步應取走至少一枚石子;每一步只能從某一堆中取走部分或全部石子;

2〉如果誰取到最後一枚石子就勝。

也就是尼姆博弈(nimm game)這種博弈的最終狀態是:最後剩下一堆石子,當前取石子的人一次取完剩下的全部石子獲勝。當石子剩下兩堆,每堆1顆的時候,當前取的人顯然必敗;再來討論一種情況,當石子剩下兩堆,其中一堆只剩下1顆,另一堆剩下多於1顆石子時,當前取的人只需將多於1顆的那一堆取到剩餘1顆,則局面變為剛才提到的必敗局面。這個過程就是當前取石子的人如果有必勝策略,那麼就迫使局面由必勝局面轉化到必敗局面,也就是說如果當前的局面是必敗局面,那麼經過2次取,局面又回到必敗局面。無窮下降法不同於反證法之處也在此:在「下降」的過程中,狀態一直保持不變(在證明費馬猜想n=4的情形時,狀態就是該三元組是方程的解);而在隨機博弈過程中,狀態即局面,下降的是石子數目,由於石子總數目一直在減少,因此最終會「下降」到終極必敗狀態:最後一顆石子已經被勝者拿走,當前沒有石子剩餘。現在的問題是:

1〉確定乙個方法(或者稱之為乙個從某一局面對映集合的函式),能夠快速判斷出當前局面是否為必勝(必敗)局面;

2〉是否存在一種滿足規則的轉化狀態方法(或者稱之為乙個從必勝局面對映到必敗局面的函式),滿足只要當前不是必敗局面,取一次後均可以轉化到必敗局面。

如果僅僅是兩堆石子,那麼上述兩個問題很好解決:

1〉當兩堆石子數目相等的時候,當前局面為必敗局面,否則為必勝局面,顯然,兩堆均為0顆是滿足這個方法的;

2〉如果當前局面是必勝局面,那麼從石子較多的那一堆裡面取,使得兩堆石子數相等,這樣便轉化到了必敗局面。

然而,對多於兩堆石子,1〉可以照舊,但是這樣一來2〉遠遠沒有這麼簡單,因為不太可能取後使得所有堆數目都一樣(除非除了石子最多的一堆之外其它所有堆石子數目都相等)。因此需要找一組更加有效的方法,有個叫張一飛的人作過這個研究,他想到的方法是這樣的:

1〉把所有堆的石子數目用二進位制數表示出來,當全部這些數按位異或結果為0時當前局面為必敗局面,否則為必勝局面;

2〉(定理0)一組自然數中必然存在乙個數,它大於等於其它所有數按位異或的結果。因此在必勝局面下,因為所有數按位異或的結果是大於零的,那麼通過一次取,將這個(大於其它所有數按位異或的結果的)數下降到其它所有數按位異或的結果,這時局面就變為必敗局面了。

數的按位異或是一種資訊時代新興的運算(也用^表示,下文中a^b均表示a與b異或),若干個(二進位制)數異或,在這些數中取最大的乙個數,其它的數補前零與這個數對齊,如果這些數在某一位上有奇數個1,那麼結果在這一位上為1,否則結果的這一位為0,如3^5^7^12:

0011

0101

0111

1100

----

1101

從右往左,第一位上有3個1,第二位上有2個1,第三位上有3個1,第四位上有1個1,所以結果為1101(從左往右)。異或運算滿足交換律和結合律,任何數與0異或還是這個數本身,在這些性質的保證下,顯然所有石子全被取走後,全部數的異或為0,是必敗局面,1〉已經解決,對於2〉只要證明定理0即可。張一飛在他的文章中也給出了證明,有幾個地方不是很完整,具體如下:

原命題等價於,設a1^a2^...^an=p,p≠0時,必存在k,使得ak^pk(當p=0時,對於任意的k,有ak^p=ak)。

設p的最高位是第q位,則至少存在乙個k,使得ak的第q位也是1,而ak^p的第q位為0,所以ak^pk

補綴一點,(a^b)^b=a^(b^b)=a^0=a,所以ak^p相當於「其它所有數按位異或的結果」。

這裡再給出另乙個證明:

從最高位開始,直到第q位上1的個數為奇數個,任選乙個在第q位上為1的數a,剩餘的所有數異或的結果必然會滿足:比第q位高的位上與a相同,第q位為0,因此a大於其它所有數按位異或的結果。當然,還有乙個意外,那就是所有數異或結果為0。

詳解「 按位與 按位或 按位異或」

按位與 按位或 按位異或 1.按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例如 9 5可寫算式如下 00001001 9的二進位制補碼 00000101 5的二進位制補碼 0000...

2019 9 02 按位或,按位與, 按位異或

a b a a b a 或者 b 只要有乙個為 1,那麼,a 的最終結果就為 1 a b a a b a 和 b 二者必須都為 1,那麼,a 的最終結果才為 1 a b a a b 當且僅當 a 和 b 的值不一致時,a 的最終結果才為1,否則為0 計算時,先把其化為二進位制數 如 5 0101 3...

位與 按位或 按位異或 運算

1.按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例如 9 5可寫算式如下 00001001 9的二進位制補碼 00000101 5的二進位制補碼 00000001 1的二進位制補碼...