|
|
发表于 2006 年 1 月 1 日 14:25:11
|
显示全部楼层
答案是:先拿的人赢。5 a7 t1 R' J/ T
对于三堆棋子的问题有一个通用的解法,如下:/ E& o7 e. E) k: X7 [% f- b
假设三堆棋子的个数的二进制表示分别是a, b, c,用^来表示二进制的异或。) M9 x1 T3 M+ ~$ x7 k" |
如果a^b^c=0,则后拿的赢,反之,则先拿的赢。4 h7 |) I1 y7 r5 |
3 w) f2 ?* d0 L" z( o M0 K3 @如何赢:7 x) l7 ~3 Z) t; N: q) E& T$ E
如果a^b^c不等于0,那么先拿的人总可以做到每次拿完棋子后,使得& E: c* d l( K5 j K
剩下的三堆棋子的个数(a1,b1,c1) 满足
1 @: k! o+ V( n( ^& K7 ra1^b1^c1=0 (本题中,先拿的人应该从9里面拿4个)
1 `# q: ]0 W! K; Q* t" i" {4 z$ y6 J. J; A2 J% f
而后拿的那个人无论拿哪一堆都会破坏这个等式的成立。如果先拿的人每次拿完后, u2 `. O* ?7 \9 W0 U$ S
总是使的剩下的棋子数满足这个等式,后拿的人每次都破坏这个等式,也就不可能6 y6 f. W. w# s1 i
达到三堆全0的状态,那么获胜的必然是先拿的人了。
2 o3 g2 D- j d9 W4 B7 \, r2 v. G' a$ r% x1 x0 g5 r9 Z! L
如果一开始三堆棋子的数就满足a^b^c=0,那么先拿的必先破坏这个等式,
/ z! r$ R7 r w8 R d) S* e- J& S后拿的人可以在每次拿棋子后满足这个等式,就获胜了。
2 |' V2 {: j* x/ E- b
, c& h8 e/ n3 ]/ HPS:PM偶个空间^_^ |
|