Introdução à Programação / Programação I
|
|
|
- Martín Ávila Sales
- 8 Há anos
- Visualizações:
Transcrição
1 Introdução à Programação / Programação I Aula 18: Definições recursivas Rita P. Ribeiro 2017/2018 Departamento de Ciência de Computadores
2 Nesta aula 1. Definições recursivas 2. Exemplos INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 1
3 Definições recursivas
4 Iteração e Recursão Para resolver um problema complexo é comum partirmos esse problema em tarefas mais pequenas que são resolvidas, uma de cada vez, e no final, combinarmos os resultados obtidos. Existem duas abordagens: iteração repetimos uma sequência de operações um número variável de vezes até que o problema fique resolvido recursão partimos o problema em problemas semelhantes mas mais pequenos que se consigam resolver, repetindo assim a sequência de operações e, com essas soluções, construimos a solução final. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 2
5 Recursividade Recursividade: definição de uma função, relação ou um processo em termos de si próprio. Exemplos: um antepassado é o pai ou a mãe ou um dos seus antepassados; um diretório é uma estrutura que contém ficheiros e sub-diretórios; uma árvore é uma folha ou um ramo que bifurca em duas ou mais sub-árvores. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 3
6 Exemplos
7 Fatorial Podemos definir o fatorial de n recursivamente: 0! = 1 n! = n (n 1)! (n > 0) A primeira equação define o caso base (0!) A segunda equação define o caso recursivo: n! usando (n 1)!. Assim fatorial fica definido para todos os inteiros não-negativos. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 4
8 Fatorial (cont.) Exemplo: 4! = 4 3! = 4 (3 2!) = 4 (3 (2 1!)) = 4 (3 (2 (1 0!))) = 4 (3 (2 (1 1))) = 24 INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 5
9 Fatorial (cont.) Em Python: (Exemplo de execução no Python Tutor.) def fatorial(n): if n==0: r=1 # caso base else: r=n*fatorial(n-1) # caso recursivo return r Uma função recursiva envolve a definição: um ou mais casos base, para os quais a solução é conhecida caso recursivo que chama a mesma função para resolver um problema mais simples e que se aproxima do(s) caso(s) base. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 6
10 Fractal de Koch n = 0 n = 1 n = 2 A curva de ordem 0 é uma linha. A curva ordem n + 1 consiste em quatro curvas de ordem n. n = 3 INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 7
11 Fractal de Koch (cont.) from turtle import * def koch(n, size): if n == 0: forward(size) else: koch(n-1, size/3) left(60) koch(n-1, size/3) right(120) koch(n-1, size/3) left(60) koch(n-1, size/3) # caso base: uma linha # caso recursivo # 4 curvas com 1/3 do comprimento INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 8
12 Fractal de Koch (cont.) Podemos simplificar a definição anterior: right(α) é equivalente a left( α); left(0) não altera a orientação. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 9
13 Fractal de Koch (cont.) def koch(n, size): if n == 0: # caso base: uma linha forward(size) else: # caso recursivo for angle in [60, -120, 60, 0]: koch(n-1, size/3) # avançar 1/3 do comprimento left(angle) INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 10
14 Números de Fibonacci Conhecidos na Índia (700 DC) Introduzidos na Europa por Leonardo de Pisa (1202 DC) Modelo simplificado para o crescimento de uma população de coelhos: um par de coelhos são colocados num campo; os coelhos podem acasalar com um mês; no fim do segundo mês, nasce um novo par de coelhos; os coelhos não morrem, e cada par produz sempre um novo par ao fim de um mês. Quantos pares de coelhos existem ao fim de um ano? INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 11
15 Números de Fibonacci (cont.) Ao fim de 1 mês ainda há só 1 par. Ao fim de 2 meses nasce um novo par, logo há 2 pares. Ao fim de 3 meses, nasce um segundo par da primeira fémea, logo há 3 pares. Ao fim de 4 meses, nasce o terceiro par da primeira fémea e o primeiro par da segunda fémea; logo há 5 pares. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 12
16 Números de Fibonacci (cont.) INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 13
17 Números de Fibonacci (cont.) O número de pares que existem ao fim de n meses é então a soma de: 1. o número de pares que existiam no mês anterior; 2. o número de pares que nascem (que é o número de pares no mês n 2). Simbolicamente F n = F n 1 + F n 2 Os casos base são F 0 = 1 e F 1 = 1. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 14
18 Implementação recursiva Tradução direta para uma função recursiva. def fib(n): if n==0 or n==1: r=1 else: r= fib(n-1) + fib(n-2) return r Exemplo: >>> fib(4) 5 Contudo: esta implementação é pouco eficiente! INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 15
19 Eficiência Construir uma tabela do tempo de computação em função de n. import time for n in range(1, 40): t0 = time.clock() fn = fib(n) t1 = time.clock() print("%d\t%f" % (n,t1-t0)) INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 16
20 Eficiência (cont.) CPU time n INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 17
21 Fibonacci: grafo de chamadas fib(1) fib(2) fib(3) fib(0) fib(4) fib(2) fib(1) fib(1) fib(0) A computação de fib(2) é repetida desnecessariamente... INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 18
22 Fibonacci com memorização Vamos usar um dicionário para guardar resultados já calculados. fib_memo = {0:1, 1:1} # dicionário global def fastfib(n): if n in fib_memo: r = fib_memo[n] else: r = fastfib(n-1) + fastfib(n-2) fib_memo[n] =r return r INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 19
23 Fibonacci com memorização (cont.) Utilização (resultados praticamente instantâneos): >>> fastfib(40) >>> fastfib(500) L INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 20
24 Listas imbricadas Vamos considerar listas imbricadas, i.e. listas cujos elementos são: números inteiros ou vírgula flutuante; outras listas imbricadas. Exemplos: [1, 2, 3] [1, [2, 3], 4] [[1,2],[3,4],[[5],6]] INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 21
25 Listas imbricadas (cont.) Queremos definir uma função recursiva para somar todos os valores numa lista imbricada. Note que a função pré-definida sum não serve (soma apenas listas de números). >>> sum([1,2,3]) 6 >>> sum([1, [2, 3], 4]) TypeError >>> sum([[1,2],[3,4],[[5],6]] TypeError INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 22
26 Listas imbricadas (cont.) def recsum(xs): "Somar todos os valores numa lista imbricada." s = 0 # acumulador da soma for x in xs: # percorrer todos os elementos if type(x)==int or type(x)==float: s += x elif type(x)==list: s += recsum(x) # somar sub-lista recursivamente else: raise TypeError("lista inválida") return s INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I /2018: AULA 18 23
Introdução à Programação Aula 15 Definições recursivas
Introdução à Programação Aula 15 Definições recursivas Pedro Vasconcelos DCC/FCUP 2014 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 15 Definições recursivas 2014 1 / 27 Nesta aula 1 Definições
Processamento da Informação Teoria. Recursividade
Processamento da Informação Teoria Recursividade Semana 08 Prof. Jesús P. Mena-Chalco 15/06/2013 Uma função chama outra função Vimos exemplos de uma função chamar uma outra função. def fatorial1(n): mult
Recursividade. Estrutura de Dados. Prof. Kleber Rezende
Recursividade Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Em aulas anteriores fizemos uma função que permite calcular o fatorial de um número. Naquela função, a cada nova iteração o
Introdução à Programação
Introdução à Programação Aula 11: Processamento de Listas Rita P. Ribeiro 2016/2017 Departamento de Ciência de Computadores Nesta aula 1. Agregações 2. Eliminar repetidos 3. Crivo de Eratóstenes INTRODUÇÃO
Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição
Recursividade Prof. Cesar Augusto Tacla Métodos iterativos Métodos iterativos utilizam estruturas de repetição For While Do while Normalmente, um método invoca outros métodos, não a si mesmo. 2 1 Recursividade
Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (
Análise de Problemas Recursivos Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando de Recursividade Procedimento que chama a si mesmo Recursividade permite
Técnicas de análise de algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ [email protected]
Aula 06: Análise matemática de algoritmos recursivos
Aula 06: Análise matemática de algoritmos recursivos David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento
04 Recursão SCC201/501 - Introdução à Ciência de Computação II
04 Recursão SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir Ponti Jr. (ICMCUSP) 04Recursão
Programação I Aula 10 Processamento de listas
Programação I Aula 10 Processamento de listas Pedro Vasconcelos DCC/FCUP 2017 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 10 Processamento de listas 2017 1 / 30 Nesta aula Vamos ver alguns exemplos
MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016
MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números
Recursividade. Objetivos do módulo. O que é recursividade
Recursividade Objetivos do módulo Discutir o conceito de recursividade Mostrar exemplos de situações onde recursividade é importante Discutir a diferença entre recursividade e iteração O que é recursividade
Aula 05: - Recursão (parte 1)
MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. Jesús P. Mena-Chalco [email protected] 3Q-20107 1 Recursão: Se você ainda não entendeu; Ver: "Recursão". Efeito Droste Anuncio
# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira
# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira Na aula anterior... Alocação Dinâmica de Memória Introdução 3 O que vamos aprender? Recursividade
Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28
Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28 Tipos de Dados Dados Numéricos Números Inteiros: Int/Long Ponto Flutuante: Float Números Complexos: Complex
Comparação com Divisão e Conquista
Programação Dinâmica Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Algoritmos e Programação. AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO
1 Algoritmos e Programação AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO 2 Recursividade A recursão é o processo pelo qual passa um
Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02
1 Objetivos da lista Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02 Esta lista de exercícios tem como objetivo introduzir funções na linguagem C. Como
if not(isinstance(a, int)) or a < 0: raise ValueError ("misterio: arg nao e inteiro nao negativo") else: return misterio_aux(a, a + 1)
Capítulo 7 Recursão e iteração 1. (1) Considere a seguinte função: def misterio(a): def misterio_aux(b, c): if b == 0: return True elif c == 0: return False return misterio_aux(b -, c - ) if not(isinstance(a,
if not(isinstance(a, int)) or a < 0: raise ValueError ( misterio: arg devia ser inteiro nao negativo ) else: return misterio_aux(a, a + 1)
Capítulo 7 Recursão e iteração 1. (1) Considere a seguinte função: def misterio(a): def misterio_aux(b, c): if b == 0: return True elif c == 0: return False return misterio_aux(b - 2, c - 2) if not(isinstance(a,
BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade
BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade Prof. Jesús P. Mena-Chalco 1Q-2016 1 Sobre a Lista 01 2 Lista 01 Solve me first Simple Array Sum A Very Big Sum Diagonal Difference
Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada
Aula 05: - Recursão (parte 1)
MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-20108 Recursão: Se você ainda não entendeu; Ver: "Recursão".
PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick [email protected], [email protected] Roteiro Funções Escopo de Variáveis Variáveis Globais
Fundamentos da Programação
Fundamentos da Programação Segundo Teste 18 de Junho de 2014 15:00 16:30 1. (1.0) Diga quais as fases por que passa o desenvolvimento de um programa no modelo estudado e o que se faz em cada uma delas.
Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )
Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista (2.1-2.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material desenvolvido por Andréa Iabrudi
Primeira Prova de Linguagens de Programação - DCC024 -
Primeira Prova de Linguagens de Programação - DCC024 - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.
Programação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
Complexidade de Algoritmos
Complexidade de Algoritmos! Uma característica importante de qualquer algoritmo é seu tempo de execução! é possível determiná-lo através de métodos empíricos, considerando-se entradas diversas! é também
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/27 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos
Recursividade. Prof. Jesus José de Oliveira Neto
Recursividade Prof. Jesus José de Oliveira Neto Algoritmos podem ser definidos de duas formas: Forma iterativa ou não recursiva: utiliza laços de repetição (while, for, do/while) Forma recursiva: métodos
Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma
Roteiro Prático Nº 13 Recursividade
UNIVERSIDADE FEDERAL DE ITAJUBÁ UNIFEI CAMPUS ITABIRA BAC004 TÉCNICAS DE PROGRAMAÇÃO Professores: Claudia, Denílson, Fabiana, Fernando, Juliano, Natália, Raquel, Rodrigo, Sandro e Walter Roteiro Prático
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 04 Programa Recursivo e Máquinas Prof.ª Danielle Casillo Funções recursivas Alguma função é recursiva quando
Fundamentos da Programação
Fundamentos da Programação Solução do Exame 1 de Fevereiro de 2019 09:00 11:00 1. Usando palavras suas e, no máximo, em cinco linhas responda às seguintes questões. Respostas dadas através de exemplos
Programação I Aula 3 Primeiros programas
Programação I Aula 3 Primeiros programas Pedro Vasconcelos DCC/FCUP 2018 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 3 Primeiros programas 2018 1 / 23 Nesta aula... 1 Tipos básicos 2 Variáveis e atribuições
Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Principais paradigmas do projeto de algoritmos - Recursividade - Tentativa e erro - Divisão e Conquista - Programação dinâmica - Algoritmos Gulosos e de Aproximação
Revisão: Tipo Abstrato de Dados Recursividade
Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira [email protected] Introdução Estudo das estruturas de dados envolve dois objetivos complementares:
Subindo uma escada. Ação: Subir 1 degrau da escada
Recursão Subindo uma escada Ação: Subir 1 degrau da escada 2 Subindo uma escada Ação: Subir 1 degrau da escada 3 Subindo uma escada Ação: E agora??? 4 Subindo uma escada Ação: E agora??? Tem uma escada...
Introdução à Programação Aula 3 Primeiros programas
Introdução à Programação Aula 3 Primeiros programas Pedro Vasconcelos DCC/FCUP 2015 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 3 Primeiros programas 2015 1 / 23 Nesta aula... 1 Tipos básicos
Recursividade. Recursividade
A recursão é uma técnica que define um problema em termos de uma ou mais versões menores deste mesmo problema. Esta ferramenta pode ser utilizada sempre que for possível expressar a solução de um problema
Nesta aula... Iteração indefinida. 1 Decisões em Python. 2 Funções lógicas. 3 Recursão. 4 Iteração. 5 Ciclo for ou while?
Nesta aula... 1 2 3 4 indefinida 5 Valores lógicos: booleanos Tipo do Python para guardar os valores lógicos, verdadeiro e falso: booleano (George Bool, matemático inglês) Valores lógicos podem ter apenas
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.
ALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão
Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 2.1 - Definições recursivas 2.2 - Como implementar recursividade 2.3 - Quando não usar recursividade 2.4 - Desenvolvendo algoritmos
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da
Pedro Vasconcelos DCC/FCUP. Programação Funcional 8 a Aula Listas infinitas
Programação Funcional 8 a Aula Listas infinitas Pedro Vasconcelos DCC/FCUP 2014 Listas infinitas Podemos usar listas para sequências finitas, por ex.: [1,2,3,4] = 1:2:3:4:[] Nesta aula vamos ver que podemos
Fundamentos da Programação
Fundamentos da Programação Segundo Teste 10 de Janeiro de 2014 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 12 perguntas. A cotação de cada pergunta está assinalada
Aula prática 5. Funções Recursivas
Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário
Pedro Vasconcelos DCC/FCUP. Programação Funcional 5 a Aula Definições recursivas
Programação Funcional 5 a Aula Definições recursivas Pedro Vasconcelos DCC/FCUP 2014 Definições usando outras funções Podemos definir funções usando outras previamente definidas (e.g. do prelúdio-padrão).
Programação Funcional Aulas 5 & 6
Programação Funcional Aulas 5 & 6 Sandra Alves DCC/FCUP 2016/17 Definições usando outras funções Podemos definir funções usando outras previamente definidas (por exemplo: do prelúdio-padrão). Exemplo:
Análise de Algoritmos Parte 4
Análise de Algoritmos Parte 4 Túlio Toffolo [email protected] www.toffolo.com.br BCC202 Aula 07 Algoritmos e Estruturas de Dados I Como escolher o algoritmo mais adequado para uma situação? (continuação)
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Relações de recorrência
Relações de recorrência Sequências. Relações de recorrência. Equação caraterística. Relações de recorrência de 2ª ordem não homogéneas. Referência: Capítulo: 4 Discrete Mathematics with Graph Theory Edgar
Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares
Programação Dinâmica Prof. Anderson Almeida Ferreira Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para
Introdução à Programação
Introdução à Programação Aula 10: Listas e tuplos Rita P. Ribeiro 2016/2017 Departamento de Ciência de Computadores Nesta aula 1. Listas 2. Tuplos INTRODUÇÃO À PROGRAMAÇÃO - 2016/2017: AULA 10 1 Listas
SCC Capítulo 2 Recursão
SCC-501 - Capítulo 2 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis
