Problema Iniciante
Vamos falar de uma das mais importantes técnicas de jogos: jogar simetricamente. No nosso problema temos muito pouca informação, então jogar simetricamente é algo que nos livra das especificidades dos tamanhos da mesa e das moedas. O primeiro jogador vai começar botando uma moeda bem no centro da mesa. Agora, para cada jogada do segundo jogador, o primeiro responderá jogando no lugar simétrico ao jogado pelo segundo em relação à moeda central. Isso garante que o primeiro jogador NUNCA PERDE, pois sempre que houver um lugar disponível, o simétrico desse local também estará e sendo assim, sempre que o segundo jogador conseguir jogador o primeiro também conseguirá. Como sabemos que o jogo é finito e o primeiro jogador não perde, o segundo jogador irá eventualmente perder o jogo e provamos o que o enunciado pedia.
Problema Intermediário
Vamos falar sobre a segunda das mais conhecidas técnicas de jogos: Achar posições vencedoras.
Definiremos posições vencedoras como posições onde o jogador que vai jogar pode garantir a vitória e definiremos posições perdedoras como aquelas onde o jogador que vai jogar só pode levar seu oponente para uma posição vencedora.
Olhando para essas definições observe que uma posição é vencedora quando dela o jogador pode de duas uma: acabar o jogo ou mandar seu oponente para uma posição perdedora.
Só que para uma pessoa vendo essas estratégias pela primeira vez fica difícil de entender sem um exemplo, então vamos exemplificar com o nosso problema!
Claramente e são posições vencedoras, pois delas o jogador pode simplesmente acabar com o jogo tirando a quantidade exata de chocolates da pilha. do contrário, é uma posição perdedora, pois o jogador que recebe chocolates é obrigado a deixar seu adversário com ou chocolates e o outro jogador vencerá. Agora, são posições vencedoras, pois o jogador que está em uma dessas posições pode deixar seu oponente com chocolatess, que é uma posição perdedora. De novo, note que será uma posição perdedora, pois um jogador nessa posição só pode deixar seu oponente numa posição vencedora. Seguindo esse procedimento (e aqui pode ser um momento para os mais novos treinarem o método de indução matemática) veremos que as posições perdedoras são os múltiplos de . Hora de matar o problema
Inicialmente Arnaldo comerá chocolates e deixará Bernaldo com chocolates. Agora, sempre que Bernaldo tirar chocolates Arnaldo tirará chocolates e deixará Bernaldo sempre num múltiplo de . Sendo assim, quando Arnaldo deixar Bernaldo com chocolates, o último tirará entre e chocolates e em seguida Arnaldo poderá finalizar o jogo. Logo, nossa resposta é que Arnaldo tem uma estratégia vencedora e acabamos de explicá-la.
Problema Avançado
Esse jogo tem várias estratégias, inclusive estratégias que garantem o resultado em movimentos, e é essa que iremos apresentar aqui. A primeira ideia é que, em dois movimentos podemos descobrir o resto de por em até duas perguntas:
se o resultado for ou , saberemos de imediato o resto de por . Caso contrário, é impar, daí é par e vamos à pergunta:
como a resposta será ou , vamos descobrir o resto de por e por consequência obteremos também o resto de por .
Na mesma ideia, perguntando por e , se algum deles der , teremos descoberto o resto de por . Caso ambas respostas sejam saberemos que só pode deixar resto por e do mesmo modo descobrimos o resto de por .
Aplicando a mesma ideia para e podemos descobrir, em perguntas os resto de por analisando quando (ou não) o fator aparecerá em um desses (ou se ele nunca aparecerá).
Feitas essas três observações, podemos reunir todas elas em quatro perguntas apenas: e .
Como nossas observações não dependem da exata resposta e sim de quando os fatores e aparecem neles, podemos olhar para essas perguntas e fazer algo análogo ao que fizemos acima e obteremos o resto de por e .
Pelo teorema chinês dos restos, saberemos o valor de módulo : seja ele . Como está entre e , nossa resposta pode ser somente ou . Assim, nossa última pergunta sera . Se a resposta for , já se o for menor que isso e de qualquer modo acabamos o problema. Logo, conseguimos descobrir em perguntas!