Resolução do Problema das Bandeiras Galáticas Explorando Aspectos Geométricos e Somas de Parcelas Ricardo M. Czekster Programa de Pós-Graduação em Ciência da Computação - PUCRS Av. Ipiranga 6681, Prédio 16, sala 106 - 90690.090 - Porto Alegre - RS - Brasil [email protected] Resumo O presente artigo trata sobre o problema da construção das bandeiras galáticas, discorrendo suas possíveis soluções e analisando alguns desenvolvimentos importantes. Sao realizados estudos sobre a formação do número de possíveis planetas, onde é proposto um algoritmo que descreve a construção das bandeiras. Como conseqüência, foi possível determinar as seqüências mais longas de planetas que podem ser colocados, o número de planetas que não podem ser representados e aqueles que possuem os formatos de desenho mais repetidos. Como será visto ao longo do artigo, a solução parte de um algoritmo simples de cálculo onde varia-se as linhas e as colunas evoluindo para uma exploração de aspectos geométricos de representação. 1 Introdução Após um longo período de turbulência política, os diferentes planetas da galáxia resolveram finalizar o processo de consolidação onde decidiram unirem-se sob uma bandeira comum. Diversos problemas surgem, particularmente quanto ao formato que cada bandeira deve possuir. Devido à enormidade de planetas existentes, as diferentes civilizações devem compactuar com o desenho de suas bandeiras, a fim de amenizar as suas tradicoes e diferencas culturais. Após as discussões de praxe, convenciona-se construir bandeiras que representem o número de planetas envolvidos, de acordo com um símbolo. A seguir é feito o mapeamento deste problema, seguido da proposição de algumas idéias iniciais, seguidas de outras tentativas de resolução. Ao final são explicados os resultados obtidos e as conclusões. 2 Problema Como dito anteriormente, as bandeiras possuem um conjunto de caracteres especiais, conforme a Figura 1. Estes símbolos, colocados em uma grade de a × b planetas, com a, b > 1, determinam o número de planetas existentes na federação. No caso da Figura 1 estão sendo representados 18 planetas. É possível verificar que se mais um planeta se juntar à federação, não existirá uma bandeira que o inclua. Já 23 planetas podem ser colocados de duas maneiras distintas: 2 × 8 e 3 × 5. 1 Figura 1. Uma bandeira representando 18 planetas Para um número de planetas entre 1 e 30.000.000 deve-se determinar as condições para o desenho de bandeiras, além de responder questões relativas ao número de bandeiras que podem ou não serem construídas. Outra questão pertinente é descobrir onde inicia-se a seqüência com o maior número de planetas que não podem ser colocados e a seqüência dos que podem. 3 Idéias Iniciais É possível enxergar este problema como sendo um retângulo externo, de tamanho a × b tendo um outro retângulo circunscrito, de tamanho (a − 1) × (b − 1) (no caso especial a == b, forma-se um quadrado). Para tentar resolver o problema da forma mais bruta possível, bastaria percorrer o tamanho da bandeira nestas duas dimensões, começando-se com a = 2 e b = 2 e calcular a bandeira que foi formada, a partir da fórmula B = a × b + (a − 1) × (b − 1), armazenando o resultado em um vetor contador. É possível realizar uma pequena otimização nesse algoritmo: como dito anteriormente, uma bandeira de tamanho 2×8 e outra de tamanho 3×5 equivalem-se em termos de números de planetas, e, por conseguinte, não necessitariam serem calculadas duas vezes. Uma razoável melhoria seria percorrer as dimensões sempre começando-se na diagonal onde a == b. No final, bastaria multiplicar o resultado obtido por dois para ter o número de bandeiras repetidas. Esta fórmula parece resolver o problema da criação e obtenção do número de planetas de uma bandeira, só que, à primeira vista, possui um número excessivo de multiplicações. A seguir, são mostradas outras tentativas de solução do problema, analisando-se outras questões e tentando-se perceber a lógica existente entre as sequencias de números de planetas que são formados. 4 Outras Tentativas A partir deste momento, já é possível calcular o número de planetas que não podem ser colocados e todas as outras questões propostas. Entretanto, é necessário um estudo mais aprofundado sobre a seqüência de números de planetas que são formados, pois seguem um padrão definido. Partindo-se sempre do caso inicial e otimizado da Seção anterior, ou seja, quando a == b, estando no caso de uma bandeira quadrada. Usando-se a fórmula B, definida na Seção anterior, temos que: 1) a = b = 2, B = 2 × 2 + 1 × 1 = 5 2) a = b = 3, B = 3 × 3 + 2 × 2 = 13 3) a = b = 4, B = 4 × 4 + 3 × 3 = 25 4) a = b = 5, B = 5 × 5 + 4 × 4 = 41 ... n) a = b = n − 1, B = (n + 1) × (n + 1) + n × n 2 Isso quer dizer que, para um quadrado com a = n, ao variar b até o número de planetas, sempre são adicionados 2 × a − 1 planetas. Ou seja, para cada diagonal da matriz quadrada, da esquerda para direita, começando-se em B = a × b + (a − 1) × (b − 1) e variando-se V = 2 × a − 1 elementos, é possível construir a seqüência dos planetas de forma que envolvam apenas somas de elementos. Em outras palavras, para os quadrados a seguir, as seguintes sequencias são formadas (para um número de planetas igual a 50): a = 2, b = 2, V a = 3, b = 3, V a = 4, b = 4, V a = 5, b = 5, V = 3 => 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50 = 5 => 13, 18, 23, 28, 33, 38, 43, 48 = 7 => 25, 32, 39, 46 = 9 => 41, 50 Estes números equivalem aos planetas que podem ser formados até 50. Para a = 6, b = 6, V = 11 começaria em 6 × 6 + 5 × 5 = 51 e não faria sentido. Este algoritmo é mais simples que o anterior e envolve apenas somas. Só é necessário usar a fórmula F na diagonal, e percorrer esta linha até chegar no número de planetas desejado. Por realizar as operações começando na diagonal, este algoritmo é otimizado. Trata-se de uma versão melhorada da idéia inicial. 5 Solução proposta A solução proposta ao problema é criar um vetor contador de repetições de planetas contendo n planetas (passados via linha de comando para o programa), realizando o seguinte algoritmo: Com este vetor é possível calcular o número de planetas que não são representáveis e as maiores e menores seqüências de planetas existentes. para i de 0 a nroplanetas inicio = i2 + (i − 1)2 incremento = 2 × i − 1 para j de 0 a nroplanetas bandeira = j + inicio contador++ fim-para fim-para Observando-se um caso especial, notou-se que para a = 4, b = 4, a B = 4 × 4 + 3 × 3 = 25. O triângulo retângulo do Teorema de Pitágoras é composto por estes catetos, a = 4, b = 3, onde é possível calcular a hipotenusa: h2 = 25 Caberia uma investigação futura neste fato, atentando-se ao fato de que os catetos correspondem a números sucessivos. 6 Resultados Os resultados obtidos foram os seguintes (para números de planetas entre 1 e 30.000.000): • Número de planetas que não podem ser representados = 3.562.115 3 • Seqüência mais longa de planetas que não pode ser colocada na bandeira = 4, começando no número 1 • Seqüência mais longa de planetas que pode ser colocada na bandeira = 109, começando no número 23.663.348 • Números de planetas que possuem o maior número de configurações possíveis (com 254 configurações cada): - 21.824.303 - 26.418.893 - 28.716.188 - 29.526.998 Sobre o caso das seqüencias mais longas de serem colocadas, cabe uma ressalva: como sempre a partir de a = 2 e b = 2, tem-se uma variação de 3, conforme Seção 4, nunca existirão numeros maiores do que esta variação. Se as bandeiras começassem em a, b > 2 talvez a busca por estas seqüências ficassem mais interessantes de serem conseguidas. 7 Conclusões Este problema sucitou diversas dúvidas e questionamentos, alargando meus conhecimentos sobre a teoria dos números, que eu acho extremamente interessante e desafiadora. Procurar padrões e repetições é sempre algo inusitado e merecedor de atenção. Devido à questões de tempo não me foi possível conduzir de forma mais apropriada alguns desenvolvimentos, entretanto, considero que realizei as devidas incursões no tempo que me foi dado. Também, peço desculpas se o texto pareceu em alguns momentos chato, ou visualmente sujo, pois esta é minha primeira incursão no LaTeX, e ainda não conheço comandos que tornem a apresentação mais limpa e visual. Pretendo conhecer mais sobre o LaTeX até o fim da displina. Como aproximadamente 2.5 milhoes de planetas não poderão fazer parte da federação, minha recomendação final é que se troque este forma de representação para algo que aumente o potencial representativo da galáxia. 4