为了把最后一座山留给人搬,计算机每次搬完后,剩余山的数量应该满足:m(k+1)+1,即剩余山的数量是(k+1)的整数倍还多1座。
当首次满足这个关系后,接下来,如果人搬剩余山中的1座,计算机就搬k座;如果人搬k座,计算机就搬1座。像这样一直继续,直到剩余山的数量是(k+1)+1座。这时,轮到人搬了,如果人搬1座,计算机就搬k座;如果人搬k座,计算机就搬1座,那最后一座肯定是留给了人搬。
所以,计算机第1次搬山的时候,应该搬(n-1)%(k+1)座山,这样剩下的山的数量就会是(k+1)的整数倍还多1座。但如果(n-1)已经是(k+1)的整数倍,即(n-1)%(k+1)等于0,计算机不能搬0座山,则只搬1座山,以防止冒进后发生问题。
当下一次又轮到计算机搬时,计算机依然尝试搬(n-1)%(k+1)座山(n是剩余山的数量),直到首次满足计算机搬完后,剩余山的数量是(k+1)的整数倍还多1座。接下来,计算机就一直按满足这个关系时制定的策略来搬山,直到游戏结束。