Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Por meio desses dois casos, a função fica bem definida para todos os números inteiros
positivos. Veja o exemplo:
1
Como vimos na aula sobre funções, uma função f com domínio Z+ pode ser vista como
uma seqüência (fn). Assim, podemos definir uma seqüência recursivamente usando idéia
similar à que apresentamos para funções. Usando a terminologia de seqüências, temos:
o caso base corresponde a definir o primeiro termo da seqüência.
o caso recursivo equivale a definir o n-ésimo termo da seqüência usando o
termo anterior a ele (na posição n-1).
Uma definição não-recursiva de uma função ou de uma seqüência, que seja dada por
meio de uma equação usando operações aritméticas comuns, é chamada de forma
fechada da função. Exemplos:
Nem sempre é fácil descobrir a forma fechada de uma função. Aliás, em alguns casos, a
forma fechada nem existe! Não vamos ver as técnicas para (tentar) encontrar uma forma
fechada, mas vamos ver, na próxima aula, como provar que uma forma fechada dada
equivale a uma definição recursiva dada.
Voltando à seqüência do exemplo 2, veja que ela é um caso especial das progressões
aritméticas (PAs), que você já deve ter estudado. Em geral, qualquer PA de termo
inicial a e razão r pode ser definida recursivamente como a seqüência (xn) assim:
2
x1 = a
x n = x n-1 + r
Exemplo 3: A seqüência de Fibonnacci (Fn), que tem dois casos base e cujo caso
recursivo usa os dois termos anteriores.
F0 = 0
F1 = 1
Fn = Fn-1 + Fn-2
Exemplo 4: A função mdc : NN – {(0,0)} Z+ que calcula o máximo divisor comum
de dois números1.
mdc(a, 0) = 0
mdc(a, b) = mdc(b, a mod b)
1 Veja que a função mdc recebe pares de naturais (elementos de N N), porém não permite o par (0,0).
3
Veja que a definição anterior reflete com precisão o algoritmo de Euclides que
vimos em aulas anteriores. Uma curiosidade é que esta é uma função que não
tem forma fechada!
Esta é uma relação de recorrência interessante, pois as diferenças pn+1 – pn, para
todo n inteiro positivo, sempre dão: ou o valor 1 ou algum número primo!
2. Definindo Conjuntos
Analogamente às definições recursivas de funções, podemos definir recursivamente um
conjunto C assim:
Geralmente, fica subentendido que nada mais faz parte do conjunto C, além dos
elementos que se encaixam em algum dos casos acima. Vamos a um exemplo.
4
Exemplo 2 (mais complexo): O conjunto P das cadeias (strings) que representam
fórmulas proposicionais bem-formadas. Considere que as cadeias de P são formadas
apenas com os símbolos do conjunto: { a, b, c, ..., z, ,( ,) , , , , , ,V ,F }.
Lembrando que cadeias da Matemática são como strings de C ou Java. Para deixar
ainda mais parecido, vamos representar as cadeias entre aspas duplas e vamos usar “+”
para representar a concatenação (como em Java).
o Casos base:
“α” P, onde α é alguma letra de a a z
“1” P
“0” P