Um jogo de preencher casas 12 de Janeiro de 2015 Resumo Objetivos principais da aula de hoje: resolver um jogo com a ajuda de problemas de divisibilidade. Descrevemos nestas notas um jogo que estudamos ao longo das nossas últimas três aulas. Estas notas resumem diversos resultados que vimos ao longo do curso. Neste jogo, vamos ocupando casas em Z 2 acrescentando peças uma a uma, sem jamais retirar peças. Num primeiro momento, temos uma única peça na casa (1, n) com n N\{1}. Para continuar, temos as seguintes regras. R1 Se temos uma peça em (x, y), podemos ocupar a casa (x + 1, y + 1). R2 Se temos uma peça em (x, y) e tanto x quanto y são pares, podemos ocupar a casa (x/2, y/2). R3 Se temos peças nas casas (x, y) e (y, z), podemos ocupar a casa (x, z). O problema é determinar que casas podem ser ocupadas. 1 Explorando o problema Como queremos resolver o problema, é bom termos em mente que tipo de coisa queremos estudar. Há casas que poderão ser ocupadas: devemos mostrar quem elas são e como poderão ser ocupadas. Para as outras casas, devemos demonstrar que elas não podem ser ocupadas. 1
Para esta segunda parte podemos imaginar que a ideia de invariante, que já abordamos antes, vai ser importante também. Vale lembrar vários conselhos de aulas anteriores. Jogo a gente tem que jogar. É bom começar com casos pequenos, por exemplo n = 2, 3 ou 4. O que não muda quando jogamos? Neste problema específico, o caso mais simples deveria ser o n = 2 (menor possível). Neste caso vemos alguns padrões que talvez tenham análogos no caso geral. Vamos listá-los abaixo. Caso n = 2. Para qualquer k, dá para opcupar (k, k + 1) aplicando (k 1) vezes a regra 1. Aplicando a regra 3 a (k, k + 1) e (k + 1, k + 2), também dá para ocupar (k, k + 2). Repetindo a mesma ideia, podemos ocupar (k, k +3), (k, k +4),... para qualquer k. Ou seja, todas as casas da forma (i, j) com 1 i < j podem ser ocupadas. Veja que qualquer outra casa não pode ser ocupada, já que a propriedade x < y é preservada pelas três regras. Não dizemos que isto é uma prova formal, mas tudo que fizemos até agora parece razoável. Vamos tentar um caso mais difícil. Caso n = 3. Aplicando a regra 1, chegamos a (2, 4). Daí chegamos a (1, 2) aplicando a regra 2. A partir daí, vemos que qualquer casa que conseguimos ocupar no caso anterior pode ser ocupada neste caso também. Ou seja, as casas que conseguiremos ocupar são as (i, j) com 1 i < j, e só estas. Será que isto é sempre verdade? Uma série de tentativas com n = 4 vai nos convencer de que não. De fato, depois de tentarmos muito, talvez nos convençamos de que Caso n = 4. Todas as casas (x, y) que conseguimos ocupar são tais que 3 y x. Será que podemos provar que isto é verdade? É interessante fazer isto para testar se estamos vendo algo realmente importante aqui. Para provar que nossa observação é verdadeira, observamos que a propriedade diferença das coordenadas divisível por 3 é verdadeira no início do jogo. Provamos aabaixo que ela se preserva ao longo das rodadas. R1 Esta regra não altera a diferença das coordenadas. 2
R2 Se 3 y x, (x, y) está ocupada e tanto x quanto y são pares, veja que y x = 3.k e que além disso 3.k tem de ser par, logo k = 2.l é par. Portanto y x = l.3 também é divisível por três. 2 R3 Se temos peças nas casas (x, y) e (y, z), e ambas têm diferença divisível por 3, a casa (x, z). tem diferença de coordenadas z x = (z y) + (y x), que é a soma de múltiplos de 3, logo também é divisível por 3. A esta altura temos um invariante que mostra que, por exemplo, (1, 5) e (2, 27) nunca poderão ser ocupados quando começamos com (1, 4). Mas será que há outras obstruções além das que o invariante dá? Mais exatamente, pergunto se as casas com (x, x + 3k) para x 1, k 1 podem ser todas preenchidas. Este é um caso de wishful thinking : que bom seria se já tivéssemos achado todas as obstruções para ocupar uma casa! De fato, mais um pouco de jogo leva a crer que sim. Caso n = 4. (Provisório) As casas (x, y) que conseguimos ocupar são aquelas em que 1 x < y e 3 y x. Por exemplo, se queremos ocupar (1, 7), primeiro vamos de (1, 4) para (4, 7) aplicando R1 três vezes, depois aplicamos a terceira regra a (1, 4) e (4, 7). Para chegar a (3, 9), podemos aplicar a regra R1 a (1, 7) e por aí vai. Você consegue ver como preencher (1, 13) e (21, 33)? A esta altura começa a ficar claro que a diferença inicial das coordenadas parece importar e muito para o que se consegue obter. Tomando o caso n = 4 como base, dá até para imaginar que a diferença n 1 sempre dividirá a diferença y x para qualquer casa ocupável (x, y). Mas há algo que falha nesta ideia: veja que, nocaso n = 3, conseguimos reduzir a diferença de 2 para 1. O mesmo pode ser visto no caso n = 5: (1, 5) R1 (2, 6) R2 (1, 3) R1 (2, 4) R2 (1, 2) e a partir daí temos o que poderíamos obter no caso n = 1. Será que dá para salvar nossa ideia de que n 1 deve sempre dividir y x? O que dá errado no caso acima é que, quando aplicamos R2, perdemos um fator de 2. Veja que isto não é problema quando n 1 é ímpar (por exemplo, n = 4 ou n = 6), mas causa transtornos quando n é par. No entanto, há duas coisas que podemos notar. 3
Quando n 1 é par, podemos extrair fatores de 2 usando o análogo do que fizemos com (1, 5) acima. Quando n 1 é ímpar, vemos que n 1 dividirá y x para todas as casas ocupáveis (x, y)! Parece, então, que o invariante correto tem a ver com os divisores ímpares de n 1, porque estes são preservados sempre! Será que isto nos dá um invariante completo, que determina exatamente que casas são ocupáveis? Combinando as ideias que já vimos, veremos que a resposta é sim. ANtes de escrever a solução formal, vamos organizar as ideias que usaremos. 1. Começamos com (1, n). Como o que interessa é a diferença, vamos escrever n = m + 1; ou seja, começamos com (1, m + 1). 2. Se m é par, as manobras vistas acima (R1 + R2) nos permitem passar para o estado (1, 1 + m/2), isto é, extrair fatores de 2. Deste modo, podemos ocupar (1, N + 1) com N ímpar. De fato IMPORTANTE! N tem de ser o maior divisor ímpar de m! 3. A partir daí, podemos ocupar todos os lugares (1, 1 + k.n) usando truques parecidos com os do caso n = 2. E ainda, podemos ocupar (x, x + k.n) aplicando a regra R1. 4. Por outr lado, o fato de que a diferença das coordenadas é divisível por N nunca se altera. Daí vemos que os pontos que já conseguimos ocupar são precisamente aqueles que podem ser ocupados. 2 A solução Escrevemos n = 2 k.n + 1 onde k N {0} e N N é ímpar (N é o produto de todos os números ímpares na fatoração de n 1). Provaremos que os pares que podem ser ocupados são precisamente os pontos (x, y) Z 2 com 1 x < y e N y x. Ou seja, todos os pontos deste tipo podem ser ocupados, e todos os pontos ocupáveis são deste tipo. Provaremos isto em duas partes. Parte 1: se (x, y) pode ser ocupado, então 1 x < y e N y x. Veja que as três regras preservam a ordem x < y e o fato que x 1 que temos no início do jogo. Argumentamos agora que a divisibilidade por N, que vale no início, também se preserva. De fato: 4
1. Se (x, y) é tal que y x é múltiplo de N e aplicamos R1, a diferença das coordenadas não se altera, portanto a mesma propriedade vale para (x + 1, y + 1). 2. Se (x, y) são pares, y x é par. Se supomos que N y x, vemos que k.n = y x é par. Como N é ímpar, k tem de ser par. Mas então a aplicação da regra R2 nos leva a uma diferença k.n/2 = (k/2).n, que também é divisível por N já que k/2 N. 3. Por fim, se N y x e N z y, temos que N (z y)+(y x) = z x, logo o ponto obtido aplicando R3 também tem diferença divisível por N. Parte 2: Se (x, y) tem 1 x < y e N y x, então (x, y) é ocupável. Para isto, seguiremos os passos esboçados acima. Recorde que, de início, temos a casa (1, 1 + 2 k.n) com k 0. Afirmamos que (1, 1 + N) também é ocupável. Para ver isto, provaremos por contradição. Considere o menor j N {0} tal que (1, 1+2 j.n) é alcançável. Suponha (para chegar a uma contradição) que j > 0. Mas veja que: (1, 1 + 2 j.n) R1 (2, 2 + 2 j.n). Como j > 0, o ponto da direita tem as duas coordenadas pares, logo podemos aplicar R2: (2, 2 + 2 j.n) R2 (1, 1 + 2 j 1.N), ou seja, (1, 1+2 j 1.N) é alcançável. Mas isto contradiz o fato de que j é o menor inteiro não negativo tal que (1, 1 + 2 j.n) é alcançável! Deduzimos que j = 0, como queríamos provar. O próximo passo é (1, 1 + r.n) é alcançável para todo r N. Provaremos isto por indução em r. A base r = 1 é coberta pela afirmação acima. Para aplicar indução, suporemos que que podemos alcançar (1, 1 + i.n) com 0 i r. Veja que: (1, 1 + r.n) R1 N (N + 1, 1 + (r + 1).N) 5
Como já sabemos, (1, N + 1) é alcançável, logo uma aplicação de R3 nos leva a (1, 1 + (r + 1).N). Portanto (1, 1 + (r + 1).N) também é ocupável. Podemos, enfim, concluir a Parte 2. Fixe (x, y) com 1 x < y e N y x. Queremos mostrar que (x, y) é ocupável. Veja que y = x + r.n com r N. Veja que, desta forma, podemos ocupar (x, y) aplicando a regra R1 (x 1) vezes a (1, 1 + r.n), que já vimos ser alcançável. Portanto (x, y) é ocupável CQD. Exercício 1. Você consegue uma solução quando a casa ocupada no início é (a, b) com a < b quaisquer? 6