|
|
发表于 2006 年 1 月 1 日 14:25:11
|
显示全部楼层
答案是:先拿的人赢。
3 W; ~ C% u. x$ d; B* m对于三堆棋子的问题有一个通用的解法,如下:% Y; z* d& J- X7 N& S
假设三堆棋子的个数的二进制表示分别是a, b, c,用^来表示二进制的异或。
( ?( K: [# d1 F" Y: r$ U如果a^b^c=0,则后拿的赢,反之,则先拿的赢。
+ [: u/ V" Y/ j. n
+ I% R$ q& {# u7 {2 f如何赢:, w9 O+ G! U+ Q$ }2 h
如果a^b^c不等于0,那么先拿的人总可以做到每次拿完棋子后,使得7 B+ B( J2 R9 {
剩下的三堆棋子的个数(a1,b1,c1) 满足2 w4 q- a l" w# P# _; E; I5 T. k
a1^b1^c1=0 (本题中,先拿的人应该从9里面拿4个)
) M p [8 x: Z. X: q9 k q1 P6 i; {1 g% [
而后拿的那个人无论拿哪一堆都会破坏这个等式的成立。如果先拿的人每次拿完后,
1 @' H2 a' V5 f总是使的剩下的棋子数满足这个等式,后拿的人每次都破坏这个等式,也就不可能
6 h/ `+ g H7 p+ }达到三堆全0的状态,那么获胜的必然是先拿的人了。+ d" ~/ c( `9 t4 A
3 \- ~( B0 x) k) c如果一开始三堆棋子的数就满足a^b^c=0,那么先拿的必先破坏这个等式,/ Z L$ _% @! G8 l& H2 f" k
后拿的人可以在每次拿棋子后满足这个等式,就获胜了。* K* n( ]' \" Y% @
9 a. ]/ N7 [7 Q3 |2 B1 oPS:PM偶个空间^_^ |
|