一:结论
若
a
1
x
o
r
a
2
x
o
r
a
3
.
.
.
x
o
r
a
n
≠
0
a_1 \ xor \ a_2 \ xor \ a_3 \ ... \ xor \ a_n \neq 0
a1 xor a2 xor a3 ... xor an=0 则先手(
R
R
R)赢
否则 先手(
R
R
R)输
二:证明 (数学归纳法)
(1): 定义
令
t
e
m
=
a
1
x
o
r
a
2
x
o
r
a
3
.
.
.
x
o
r
a
n
tem = a_1 \ xor \ a_2 \ xor \ a_3 \ ... \ xor \ a_n
tem=a1 xor a2 xor a3 ... xor an
(2):具体过程
①证明:若 a 1 x o r a 2 x o r a 3 . . . x o r a n ≠ 0 a_1 \ xor \ a_2 \ xor \ a_3 ... \ xor \ a_n \neq 0 a1 xor a2 xor a3... xor an=0 则当前先手( R R R)赢
首先, t e m tem tem 的二进制最高位必定在 a i ( i ∈ [ 1 , n ] ) a_i (i \in [1, n]) ai(i∈[1,n]) 的同一位上出现
满足条件的一个 a [ i ] ( i ∈ [ 1 , n ] ) a[i] (i \in [1, n]) a[i](i∈[1,n]) 记作x,将 t e m tem tem 减去 t e m tem tem 二进制最高位转换成十进制的值记作 t e m p temp temp
易知: t e m p < = x temp <= x temp<=x
当 R R R 选择改变 x x x 时,我们将 x x x 减去 t e m p temp temp,这时 a 1 x o r a 2 x o r a 3 . . . x o r a n = 0 a_1 \ xor \ a_2 \ xor \ a_3 \ ... \ xor \ a_n = 0 a1 xor a2 xor a3 ... xor an=0
即证: 若 a 1 x o r a 2 x o r a 3 . . . x o r a n = 0 a_1 \ xor \ a_2 \ xor \ a_3 \ ... \ xor \ a_n = 0 a1 xor a2 xor a3 ... xor an=0,则当前先手 ( J J J) 输。
转换成②
②
证明: 若
a
1
x
o
r
a
2
x
o
r
a
3
.
.
.
x
o
r
a
n
=
0
a_1 \ xor \ a_2 \ xor \ a_3 \ ... \ xor \ a_n = 0
a1 xor a2 xor a3 ... xor an=0,则当前先手 (
J
J
J) 输。
J J J任意选择一堆拿走一堆牌
则 a 1 x o r a 2 x o r a 3 . . . x o r a n ≠ 0 a_1 \ xor \ a_2 \ xor \ a_3 ... \ xor \ a_n \neq 0 a1 xor a2 xor a3... xor an=0
即证:若 a 1 x o r a 2 x o r a 3 . . . x o r a n ≠ 0 a_1 \ xor \ a_2 \ xor \ a_3 ... \ xor \ a_n \neq 0 a1 xor a2 xor a3... xor an=0 则当前先手( R R R)赢
结论:当最后都拿完时: a 1 x o r a 2 x o r a 3 . . . x o r a n = 0 a_1 \ xor \ a_2 \ xor \ a_3 \ ... \ xor \ a_n = 0 a1 xor a2 xor a3 ... xor an=0,则上一次拿牌的人是先手 ( R R R),所以 R R R 赢
反之亦然,即证