MAC 122 Princípios de Desenvolvimento de Algoritmos

		 Quarta lista de exercícios (turma do básico)

			 Entregar na aula de 04nov99.

			   Equipes de <= 2 alunos.

1. (5.7) Calcule a profundidade da recursão (número de chamadas recursivas
   encaixadas) do algoritmo de Euclides quando a entrada são os números de
   Fibonacci F(N) e F(N+1). Mostre as árvores de recursão para N=6.

2. (5.9) Escreva um programa recursivo que avalia expressões
   pós-fixas. Descreva o funcionamento do algoritmo e teste o mesmo com
   expressões interessantes.

3. (5.41) Escreva uma função recursiva que usa programação dinâmica para
   calcular os valores de P(N), dado por P(0)=0 e para N>=1

   P(N)=chão(N/2) + P(chão(N/2)) + P(teto(N/2))

   Desenhe o gráfico de N versus P(N) - N lg N/2, para N entre 0 e 1024,
   inclusive. 

4. Escreva um programa recursivo para listar todos os 2^N subconjuntos do
   conjunto {1,2,...,N}. Por exemplo, para N=3 os subconjuntos são vazio, 1,
   12, 123, 13, 2, 23, 3. Procure listar os conjuntos em ordem alfabética,
   como é feito no exemplo.


MAC 122 Princípios de Desenvolvimento de Algoritmos


e-mail: Imre Simon <is@ime.usp.br>
Last modified: Mon Oct 25 15:10:50 EDT 1999