|
|
发表于 2006 年 1 月 1 日 14:25:11
|
显示全部楼层
答案是:先拿的人赢。0 R* k# c- a7 `% p
对于三堆棋子的问题有一个通用的解法,如下: {" y" Y# p0 U# y- O* w4 T
假设三堆棋子的个数的二进制表示分别是a, b, c,用^来表示二进制的异或。6 [7 \' ^, O* J" L, @ W
如果a^b^c=0,则后拿的赢,反之,则先拿的赢。
3 J6 s- o k3 D3 @
6 }5 L" J1 b0 x. `' m如何赢:
# @! v) E3 [7 t) e如果a^b^c不等于0,那么先拿的人总可以做到每次拿完棋子后,使得
# `7 B; Y3 k( `剩下的三堆棋子的个数(a1,b1,c1) 满足
( g1 A5 R% O4 q) J- w& P# h y# o% oa1^b1^c1=0 (本题中,先拿的人应该从9里面拿4个)
) p1 h7 N; U7 r0 ?# i/ r8 U& V8 h; r B0 a O
而后拿的那个人无论拿哪一堆都会破坏这个等式的成立。如果先拿的人每次拿完后,$ h0 q3 S# a0 @, ?
总是使的剩下的棋子数满足这个等式,后拿的人每次都破坏这个等式,也就不可能" K# }: r7 W8 _1 \
达到三堆全0的状态,那么获胜的必然是先拿的人了。
3 A) o- p6 x- @5 }/ j- X
! ~2 J; t7 F L( P! \( y5 J e如果一开始三堆棋子的数就满足a^b^c=0,那么先拿的必先破坏这个等式,8 M H( k7 c0 _( i+ T2 z) S
后拿的人可以在每次拿棋子后满足这个等式,就获胜了。- c H9 R; c+ q/ @6 P& X
1 [9 y4 j& C1 I9 E% ]! U m
PS:PM偶个空间^_^ |
|