關於sg函式異或和轉移的證明

2021-08-20 09:23:45 字數 3088 閱讀 6887

學過博弈論的都知道,當多個博弈同時進行(比如尼姆博弈)時,我們通過將其各個博弈狀態的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...