aula 11 fábio nakano. aquecimento... demonstre por indução que: s n =1+3+5+...+(2n-1)=n 2

22
Aula 11 Fábio Nakano

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Aula 11

Fábio Nakano

Page 2: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Aquecimento...

• Demonstre por indução que:• Sn=1+3+5+...+(2n-1)=n2

Page 3: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Projeto coletivoQuantos grupos já concluiram o projeto?

Tempo de execução (ns)

Número de comparações

comprimento do vetor

8696279276 391986000 2800018627460753 840479500 41000

2888617408 199990000 2000013134217896 903103750 42500

3355019982 231114250 215001048894482 71994000 12000

6107759 499500 1000

Page 4: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

São aprox. 11 grupos

• 1 roda problemas de tamanho até 2000 em intervalos de 10

• 2 rodam problemas de 2000 a 20000 em intervalos de 100

• 3 rodam problemas de 20000 até 40000 em intervalos de 200

• 5 rodam problemas de 40000 até 60000 em intervalos de 500

• Roda por algumas horas (6?), pode (deve) paralelizar

Page 5: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Recursão

• É um conceito em computação.• É relacionado ao conceito de indução pois• É uma forma indutiva de definir programas.• Nesta, um método chama a si mesmo com os

parâmetros adequados.

Page 6: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Exemplo

• Definição: n!=n*(n-1)! E 0!=1• Construa um método recursivo que calcula n!

Page 7: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Como se implementa recursão em um computador?

• TAD - Pilha• Prog - Pilha de execução• Prog – Chamada de função• Prog - Recursão

Page 8: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Como o método recursivo calcula 4!

Page 9: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Alguns problemas práticos...

Page 10: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Poupança!

• Capital: c• Capital inicial: c0

• Taxa mensal de juros: i

Page 11: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Juros!

• Em um período: c=c0*(i+1)• Em n períodos: c=c0*(i+1)^n• Escreva o pseudo-codigo que calcula o capital

após n períodos iterativamente e recursivamente. Diga como funciona e qual a complexidade de tempo e de espaço contando também o espaço ocupado pela pilha de execução.

Page 12: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Parcelamento

• Quando compramos algo à prestação, a operação financeira equivale a tomar um empréstimo para comprar o bem e pagar a dívida em prestações.

• Para quem empresta, é como se fosse um depósito em aplicação de renda fixa. É claro que se render menos que a poupança, é melhor nem emprestar.

Page 13: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Amortização

• Dada uma dívida, amortizamos a dívida pelo seguinte processo:

• Di=Di-1*(1+i)-Pi , para i>0, quando o pagamento é feito a mês vencido

Page 14: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Escreva um programa que simula a amortização de empréstimos

• ... Suponha que o valor da parcela seja fixo. Como você usaria o programa para calcular o valor da parcela??

• ... É o jeito mais eficiente??

Page 15: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

“Tabela” Price

• Parcelamento (amortização) com parcelas fixas.

• Di=Di-1*(1+i)-Pi , quando o pagamento é feito a mês vencido, para i>0

• D0=(P/i)*(1-(1/(1+i)^n)) para parcela constante e resíduo zero.

Page 16: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Demonstre que a fórmula da tabela Price é correta

Page 17: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

• Um vendedor lhe oferece um conjunto de sala em 8 parcelas, sem entrada e “sem juros” com prestações mensais de R$100,00. A remuneração da poupança é de 0.5% a.m.

• De quanto deve ser o desconto mínimo para que seja vantagem pagar à vista??

Page 18: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Actuarial analysis via branching processes

• O problema de cálculo do passivo atuarial de um fundo de pensão pode ser modelado e resolvido recursivamente.

Page 19: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Mais sobre isso em...

Métodos Quantitativos Aplicados à Administração de Empresas I

Page 20: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Recorrência

• É o nome bonito que damos para séries em que os termos são definidos em função dos termos anteriores.

• Até agora trabalhamos definindo e resolvendo recorrências.

Page 21: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Resolver os exercícios 1, 1,2, 1,2,3 de:

• http://www.ime.usp.br/~pf/analise_de_algoritmos/aulas/recorrencias.html

– Ex 1 depois do exemplo 1,– Ex 1,2 depois do exemplo 2– Ex. 1,2,3 depois do exemplo 3

• Ler e no mínimo pensar na solução dos demais exercícios.

Page 22: Aula 11 Fábio Nakano. Aquecimento... Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2

Sumário• Complexidade assintótica

– Pode ser aplicada para tempo de execução, espaço em memória ou qualquer outro fator limitante.– Dá uma idéia do crescimento do fator limitante em função do tamanho do problema.

• Indução matemática– Base, hipótese, passo

• Recursão– Está intimamente ligado ao conceito de indução matemática.– É uma maneira indutiva de definir programas– Em geral requer mais memória (implicitamente, pelo requisito de pilha de execução)– É mais poderoso que um programa monolítico

• Recorrências– Juros compostos– Tabela “price”– Como resolver uma recorrência: “adivinhar” e depois provar por indução.

• Complexidade de algoritmos recursivos– Geralmente recaem em uma recorrência.

• Teorema mestre – na próxima aula.