A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

INE Fundamentos de Matemática Discreta para a Computação

Apresentações semelhantes


Apresentação em tema: "INE Fundamentos de Matemática Discreta para a Computação"— Transcrição da apresentação:

1 INE5403 - Fundamentos de Matemática Discreta para a Computação
3) Indução e Recursão 3.1) Indução Matemática 3.2) Indução Forte 3.3) Definições Recursivas (funções, conjuntos, estruturas) 3.4) Indução Estrutural 3.5) Algoritmos Recursivos

2 Definições recursivas
Algumas vezes pode ser difícil definir um objeto explicitamente, mas pode ser fácil defini-lo recursivamente, incluindo o item que está sendo definido como parte da definição. A recursão pode ser usada para definir seqüências, funções e conjuntos. Exemplo: - uma seqüência de potências de 2 é dada por: an = 2n para n=0,1,2 - mas ela também pode ser definida a partir do 1o termo e de uma regra para encontrar um termo da seqüência a partir do anterior, ou seja: a0 = 1 an+1 = 2.an , para n=0,1,2,...

3 Funções definidas recursivamente
Exemplo: f(0) = 3 f(n+1) = 2.f(n) + 3 Encontre f(1), f(2), f(3) e f(4). Solução: f(1) = 2.f(0) + 3 = = 9 f(2) = 2.f(1) + 3 = = 21 f(3) = 2.f(2) + 3 = = 45 f(4) = 2.f(3) + 3 = = 93

4 Funções definidas recursivamente
Exemplo (função fatorial): Forneça uma definição recursiva da função fatorial F(n) = n! . Pode-se definir a função fatorial especificando o valor inicial desta função: F(0) = 1 e uma regra para encontrar F(n+1) a partir de F(n): F(n+1) = (n+1).F(n) Assim, para calcular o valor de 5! desta forma, aplica-se a definição diversas vezes: F(5) = 5.F(4) = 5.4.F(3) = F(2) = = F(1) = F(0) = = = 120

5 Algoritmos definidos recursivamente
Exemplo: suponha uma seqüência definida como: 1. S1 = Sn = 2.Sn-1 para n2 Solução 1: um algoritmo para calcular um S desta seqüência, dado um valor de n, pode ser: function S(n) if n=1 then S:=2 else i= S:= while i<=n do S:=2*S i:=i end endif

6 Algoritmos definidos recursivamente
Exemplo(cont.): suponha uma seqüência definida como: 1. S1 = Sn = 2.Sn-1 para n2 Solução 2: um algoritmo recursivo para resolver o mesmo problema seria: function S(n) if n=1 then S:=2 else S:=2*S(n-1) endif

7 Algoritmos definidos recursivamente
Exemplo: construa uma versão recursiva do algoritmo de busca binária, usado para localizar um valor x em uma seqüência a1,a2,...,an. Solução: procura x na seção da seqüência entre ai e aj: function busca binaria(x,i,j) m:=int((i+j)/2) if x=am then loc:=m else if (x<am and i<m) then busca binaria(x,i,m-1) else if (x>am and j>m) then busca binaria(x,m+1,j) else loc:=0 endif


Carregar ppt "INE Fundamentos de Matemática Discreta para a Computação"

Apresentações semelhantes


Anúncios Google