Mistério das Pirâmides UNIVERSIDADE FEDERAL DE GOIÁS Análise e Projeto de Algoritmos Cleusa Maria do Nascimento [email protected] Rogéria Wolpp [email protected] Mistério das Pirâmides UFG Introdução Supercomputador para um cálculo numérico até 1,000,000,000 ; Algoritmo; Problema de Waring ; Números Piramidais; Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Problema de Waring Proposto em 1770 por Edward Waring Para cada inteiro positivo pode ser expressado com pelo menos a soma de no máximo quatro quadrados Exemplo: 3 = 1² + 1² + 1² + 0² 7 = 2² + 1² + 1² + 1² 23 = 3² + 3² + 2² + 1² 78 = 8² + 3² + 2² + 1² Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Número Piramidal •Um número piramidal é um número na forma: 1, 4, 10, 20, 35, 56, 84 - primeiros números piramidais •Uma conjectura de 1928 diz que qualquer número inteiro pode ser representado como a soma de no máximo cinco números piramidais.. Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Número Piramidal • Um número inteiro é piramidal se for igual à soma de três números primos consecutivos. Exemplo O número 15 é piramidal, pois 15 = 3 + 5 + 7 . O número 10 é piramidal, pois 10 =2 + 3+ 5 . O número 23 é piramidal, pois 23 = 5 + 7 + 11 . Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Número Piramidal Neste programa você receberá uma seqüência de números inteiros maiores que 0, terminada por um zero, e deverá verificar se cada um dos números da seqüência é ou não piramidal. Entrada A entrada é composta por uma seqüência de números inteiros positivos, cada um maior que 0 e menor que 10000, cada um deles em uma linha. Na última linha haverá um zero. Saída Para cada linha da entrada você deverá imprimir uma linha na saída, colocando a mensagem O numero ... e piramidal ou O numero ... não e piramidal. A linha com o número 0 não deve causar nenhuma impressão. Exemplo Entrada : 15; 7; 6; 97; 0; Saída : O numero 15 e piramidal; O numero 7 não e piramidal; O numero 6 não e piramidal O numero 97 e piramidal. Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Número Piramidal 1 + 3 1, Rogéria e Cleusa + 4 , 6 + = 10 , 10 20 , + 15 35 Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Cálculo do Número Piramidal n j ∑ ∑i j=1 i=1 n = ∑ ((j(j+1)/2)) j=1 n n 2 = ½ ∑ j +1/2 ∑ j j=1 j=1 = ½(n(n+1)(2n+1)) + ½(n(n+1)) 6 2 3 2 = 2n + 6n + 4n 12 3 = n + 3n2 + 2n 6 3 = n + 3n2 + 3n + 1 – ( n+1) 6 3 = (n + 1) – (n + 1) 6 Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Cálculo do Número Piramidal Fazendo: m=n+1 Temos que: m3 – m 6 Assim obtemos a formula para calcular o número Piramidal. Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Número Piramidal Diante do Problema a ser verificado, ou seja, encontrar todos os números piramidais no intervalo de 0 a 1.000.000.000 que seja iguais a soma de no máximo 5 números piramidais com um tempo satisfatório. Utilizando algumas estruturas de dados pôde se obter os seguintes dados: Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Número Piramidal Nos algoritmos que utilizam as técnicas de dividir e conquistar, o tempo de execução testados com entradas de 1 a 100000 é O(n2). A estrutura de tabela Hash também foi testada e o tempo de execução também não foi o desejado, pois todas estas estruturas executam os mesmos testes para todos os números do intervalo. Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Número Piramidal Mas os teste serviram para observar que os números piramidais podiam ser encontrados pelas somas de dois, três, quatro, cinco deles. Mas, mesmos assim o tempo continuava o mesmo, para os números que não podiam ser expresso pela soma dos cincos. Algumas modificações foram feitas nessa estrutura, onde temos agora um número k e K é exatamente o número que nos queremos encontrar (neste caso um número piramidal). Assim, nos iremos buscar nos vetores das somas dos números piramidais de até 5, um número pequeno de valores que soma exatamente K a este problema nós damos o nome de “problema da mochila” (knapsack). Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG O Problema De Knapsack Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG O Problema De Knapsack O problema da mochila pode ser considerado como progamação dinâmica ou como np-completo. Neste caso em particular temos um algoritmo que resolve o problema para números piramidais. Assim, o consideramos como programação dinâmica e seu tempo de execução é de O(nlgn). Fazendo o mesmo teste de 1 a 100000 o tempo de execução foi 30000 mais rápido. Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Conclusão A conclusão que chegamos é que a máquina não é quem determina o melhor tempo de execução e sim o algoritmo. Um algoritmo bem estruturado com os recursos certos para cada problema é quem realmente otimiza o tempo. Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Referências www.dcc.ufmg.br/~pshiroma/paa/pa-tp2 www.hottopos.com/geral/isidorus.htm http://www2.toki.or.id/book/ http://www.unicamp.br/unicamp/ensino_pesquisa/areas/en sino_areas_exatas_engcomp.html Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Referências 1 B. Chor and R. Rivest. A knapsack-type public key cryptosystem based on arithmetic in finite fields. In Advances in Cryptology: Proceedings of Crypto '84, pages 54-65, NY, 1985. Springer-Verlag. Revised version in IEEE Trans. Information Theory IT-34 (1988), 901-909. 2 E. G. Coffman, M. R. Garey, and D. S. Johnson. Approximation algorithms for bin-packing - a survey. In Approximation Algorithms for NP-hard Problems, pages 46 - 93. PWS Publishing Company, Boston, 1997. Rogéria e Cleusa Análise e Projeto de Algoritmos Mistério das Pirâmides UFG Referências 3 P. Hoschka. Compact and efficient presentation conversion code. IEEEACM Transactions on Networking, 6(4):389-396, 1998. 4 R. M. Karp. Reducibility among combinatorial problems. In Complexity of Computer Computations, pages 85-103, Yorktown Heights, N.Y, 1972. Proc. Sympos. IBM Thomas J. Watson Res. Center. 5 P. Orponen and H. Mannila. On approximation preserving reductions: Complete problems and robust measures. Technical report, Department of Computer Science, University of Helsinki, 1987. Rogéria e Cleusa Análise e Projeto de Algoritmos