### damn_T_T's blog

By damn_T_T, history, 3 months ago, ,

Can anyone help me with this problem?

I have learnt sprague grundy numbers recently.

• -7

 » 3 months ago, # | ← Rev. 5 →   +14 First, to use NIM game technique you need independent games. You can think of the game as moving coins from i to 2*i, 3*i or 5*i. And each coins is independent from the rest.Now, you just need to find the grundy number associated with each coin. To do this you can build an graph. Where each position of the array is a node, and an edge represents to which positions you can move the coin. For example for a array of size 10:In red is the grundy number. Basically if you can't go anywhere it is 0, otherwise is the smallest integer that you can't directly reach.To solve the problem you can pre-calculate the grundy number for each position with the graph. Then do XOR for the grundy number of each coin.
•  » » 3 months ago, # ^ |   0 "Then do XOR for the grundy number of each coin." for each coin or position?
•  » » » 3 months ago, # ^ | ← Rev. 2 →   0 For each coin.For example:0 3 0 1 2 0 0 0 0 0You have 3 coins in position 2, 1 coin in position 4 and 2 in position 5. So you should do:grundy(2) XOR grundy(2) XOR grundy(2) XOR grundy(4) XOR grundy (5) XOR grundy(5) Obs: Just remember that a XOR a = 0, so the above is equivalent to:grundy(2) XOR grundy(5)
•  » » » » 3 months ago, # ^ |   0 Can you please explain why ? If we are doing this we can just store in the array 0 1 0 1 0 0 0 0 0 0 and then grundy(2) xor grundy(4)