%I #5 Mar 10 2020 15:03:04
%S 0,1,1,2,3,3,2,4,5,5,6,7,7,6,4,8,9,9,8,10,11,11,12,13,13,14,15,15,16,
%T 17,17,14,18,19,16,17,18,20,10,19,20,21,21,22,23,23,24,25,25,24,26,27,
%U 27,28
%N Grundy numbers of one pile short global nim.
%C The game short global nim is identical to nim except that the last move cannot be repeated. (For example, if 2 stones were taken last turn, any number except 2 may be taken this turn.) The i-th term is the Grundy number of a pile of size i.
%D R. K. Guy and R. J. Nowakowski, Unsolved Problems in Combinatorial Games, More Games of No Chance, MSRI Publications, Volume 42, 2002, pp. 457-473, problem 22.
%H Urban Larsson, Simon Rubinstein-Salzedo, Aaron N. Siegel, <a href="https://arxiv.org/abs/1912.10517">Memgames</a>, arXiv:1912.10517 [math.CO], 2019.
%p mex := proc (list) local testn; testn := 0; while evalb(`in`(testn, list)) do testn := testn+1 end do; testn end proc
%p nextmoves := proc (move) local i, j, k, l, list1, list2, list3, list4, list5, list6; i := move[1]; j := move[2]; k := move[3]; list1 := `minus`({seq([n, j, i-n], n = 0 .. i-1)}, {[i-k, j, k]}); list2 := `minus`({seq([i, n, j-n], n = 0 .. j-1)}, {[i, j-k, k]}); convert(`union`(list1, list2), list) end proc
%p sgnimgrundy := proc (move) local nmoves, i, j, k; option remember; nmoves := nextmoves(move); i := move[1]; j := move[2]; k := move[3]; if i = 0 and j = 0 then 0 elif i = 0 and j = 1 and k = 1 then 0 elif i = 1 and j = 0 and k = 1 then 0 elif i = 1 and j = 1 and k = 1 then 0 else mex({seq(apply(sgnimgrundy, nmoves[i]), i = 1 .. nops(nmoves))}) end if end proc
%K nonn
%O 0,4
%A Mark Schlatter (mschlat(AT)centenary.edu) and Jeffery James (jjames(AT)centenary.edu), Jul 26 2007
|