220 likes | 301 Views
Aula 11. Fábio Nakano. Aquecimento. Demonstre por indução que: S n =1+3+5+...+(2n-1)=n 2. Projeto coletivo. Quantos grupos já concluiram o projeto?. 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
E N D
Aula 11 Fábio Nakano
Aquecimento... • Demonstre por indução que: • Sn=1+3+5+...+(2n-1)=n2
Projeto coletivo Quantos grupos já concluiram o projeto?
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
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.
Exemplo • Definição: n!=n*(n-1)! E 0!=1 • Construa um método recursivo que calcula n!
Como se implementa recursão em um computador? • TAD - Pilha • Prog - Pilha de execução • Prog – Chamada de função • Prog - Recursão
Poupança! • Capital: c • Capital inicial: c0 • Taxa mensal de juros: i
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.
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.
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
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??
“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.
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??
Actuarialanalysis via branching processes • O problema de cálculo do passivo atuarial de um fundo de pensão pode ser modelado e resolvido recursivamente.
Mais sobre isso em... Métodos Quantitativos Aplicados à Administração de Empresas I
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.
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.
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.