Mistério das Pirâmides - INF

Propaganda
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
Download