學過博弈論的都知道,當多個博弈同時進行(比如尼姆博弈)時,我們通過將其各個博弈狀態的sg
s
g值求個異或和以確定其輸贏情況,其中我們發現:
1.當異或和為
0 0
的時候,我們怎麼轉移,異或和都不為
0' role="presentation" style="position: relative;">0
02.當異或和不為
0 0
的時候,我們一定至少一種轉移方法可以使得異或和為
0' role="presentation" style="position: relative;">0
0也是基於這兩個結論,我們才能通過求異或和的方式確定輸贏。
那麼如何證明這兩個結論呢?
證明1: 已知n
n個數異或和為
0' role="presentation" style="position: relative;">0
0證明無論如何轉移,異或和都不為
0 0
反證法
假設我們可以轉移到異或和為
0' role="presentation" style="position: relative;">0
0的狀態
設我們所改變的其中乙個狀態的sgsg
值為kk
,改變之後的狀態的sg
' role="presentation" style="position: relative;">sgs
g值為k′k′
,其餘所有的狀態的sgsg
值異或和為
t t
由於當前異或和為0可知
k' role="presentation" style="position: relative;">kk^
t=0 t=0
由於狀態改變之後
k k
變成了k
′' role="presentation" style="position: relative;">k′k
′,我們可以轉化為原來的異或和先異或乙個
k k
再異或乙個k′
' role="presentation" style="position: relative;">k′k
′,且異或和仍然為0 即kk^t
' role="presentation" style="position: relative;">tt^
k k
^k′=
0' role="presentation" style="position: relative;">k′=
0k′=
0即k k
^k′=
0' role="presentation" style="position: relative;">k′=
0k′=
0即k=k′k
=k
′顯然不符合sgsg
函式的性質
所以假設不成立
所以異或和為0的狀態一定只能轉移成異或和不為0的狀態。
證明2:
已知當前異或和不為
0 0
證明一定有一種轉移可以使異或和為
0' role="presentation" style="position: relative;">0
0 設當前異或和為
k k
設k的二進位制中第a1
,a2…
…an' role="presentation" style="position: relative;">a1,
a2……
ana1
,a2…
…an位為1(其中a1
>a2
>……
>ana1
>a2
>……
>an
) 當前的所有博弈狀態一定可以找到乙個狀態的sgsg
值的第a
1 a
1位為1
1設這個狀態為
j' role="presentation" style="position: relative;">jj,
j j
的sg' role="presentation" style="position: relative;">sgs
g值為r r
將r' role="presentation" style="position: relative;">rr的
a1,a
2……a
n a1,
a2……
an
位取反,得到乙個數
p p
因為r' role="presentation" style="position: relative;">rr的第a1a
1位為11,p
' role="presentation" style="position: relative;">pp的第a1a
1位為0
0所以p
<
r' role="presentation" style="position: relative;">psgs
g函式的性質,sgsg
值為pp
的狀態j
' role="presentation" style="position: relative;">j
j一定可以轉移到sgsg
值為pp
比他小的狀態
而當異或和中的一項
r' role="presentation" style="position: relative;">rr變為
p p
之後,異或和變為
0' role="presentation" style="position: relative;">0
0所以異或和不為
0 0
的狀態一定可以轉移到異或和為
0' role="presentation" style="position: relative;">0
0的狀態
證畢 (因為不熟悉markdown語法,寫得有點繁瑣,以後有空改一下)
關於「異或」的很好的解釋
以前上學時學習 異或 雖然也學的很明白,但是基本是靠 相異則取或 的口訣去背的真值表,一直沒有很好的理解 異或 到底代表什麼含義。今天看 程式設計師的數學 一書時看到了關於 異或 的很好的解釋。異或 的英文是 exclusive or 即 排他性的或 什麼是排他性的或?舉了乙個 於生活的例子 他現在...
小Q的無敵異或 所有區間的異或和
給定乙個長度為n的非負整數序列,求序列的所有子區間異或值之和模998244353,和所有子區間之和的異或值。n 105,ai 106。題解 先考慮第一問。令xor i 表示前i項的異或值,xor l,r 表示第l項到第r項的異或值,那麼xor l,r xor r xor l 1 考慮xor l,r ...
關於異或(XOR)的有趣應用
異或是個非常有意思的東西,利用異或的性質我們可以做一些有意思的事情。異或加密解密 下面是乙個非常簡單的加密解密函式 public static string encryption string srcstring,char key return new string srcchars 給出測試 st...