Sei sulla pagina 1di 5

Definições Recursivas (ou Indutivas)

Na Matemática e na Computação, se diz que há recursão quando algo faz referência a


si próprio. Em especial, as definições recursivas (ou definições indutivas) definem um
objeto matemático (tal como um conjunto ou uma função) referenciando partes do
próprio objeto.

Veremos, a seguir, definições recursivas de funções e seqüências (na seção 1) e de


conjuntos (na seção 2). Depois (na seção 3), veremos um tipo restrito de definição
recursiva de funções que tem importância teórica para a computação.

1. Definindo Funções e Seqüências


Uma função f com domínio nos inteiros positivos (Z+) pode ser definida recursivamente
(indutivamente) assim:
 Definimos o valor de f(1) de forma direta.
o Este é o chamado caso base
 Definimos o valor de f(n) em função de f(n-1), para os casos em que n>1.
o Este é o chamado caso recursivo ou indutivo
o Também chamada de relação de recorrência

Por meio desses dois casos, a função fica bem definida para todos os números inteiros
positivos. Veja o exemplo:

Exemplo 1: Uma função f : Z+  Z.


f(1) = -2
f(x) = (-2) . f(x-1) (fica implícito que este caso só vale se x > 1)

Para ilustrar, vamos calcular alguns valores desta função:


f(2) = (-2) . f(1) f(3) = (-2) . f(2)
= (-2) . (-2) = (-2) . 4
=4 = -8

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).

Exemplo 2: A seqüência (a n) dos números pares positivos.


a1 = 2
a n = a n-1 + 2

Vamos listar alguns elementos desta seqüência:


(a n) = (2, 4, 6, 8, 10, 12, 14, ...)

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:

 A forma fechada da função f do exemplo 1:


f(x) = (-2)x
 A forma fechada da seqüência (an) do exemplo 2:
an = 2.n

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

E quanto às progressões geométrica (PGs), como defini-las recursivamente? Fica


como exercício...

As definições recursivas, na verdade, são mais flexíveis do que apresentamos. Seguem


algumas variações permitidas na definição recursiva de uma função f qualquer (também
vale para seqüências):
 O caso base pode ser f(0) ou f(2), ou um f(a) qualquer. Neste caso, a função
estará definida do domínio dos inteiros maiores ou iguais a a.
 A definição pode ter vários casos base: f(1), f(2), ..., f(k).
 O caso recursivo pode definir f(n) em função de quaisquer dos valores
anteriores: f(1), f(2), ..., f(n-1).
 A função pode ter vários parâmetros f(x,y).

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

Veremos a forma fechada desta seqüência na lista.

Exemplo 4: A função mdc : NN – {(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!

Exemplo 5: Uma seqüência interessante.


p1 = 7
p n = p n-1 + mdc(n, pn-1)

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!

Desafio: crie um programa que imprima a seqüência de diferenças acima.

2. Definindo Conjuntos
Analogamente às definições recursivas de funções, podemos definir recursivamente um
conjunto C assim:

 Caso(s) base: informamos diretamente um ou mais elementos do conjunto C


 Caso(s) recursivo(s): informamos como descobrir novos elementos de C a
partir de elementos já conhecidos

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.

Exemplo 1: Definição recursiva de um conjunto T .


3T
Se x  T, então (x+3)  T

Listando alguns elementos:


T = { 3, 6, 9, 12, 15, ... }

Observe que T é o conjunto dos múltiplos positivos de 3 !

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).

Segue uma definição recursiva de P :

o Casos base:
 “α”  P, onde α é alguma letra de a a z
 “1”  P
 “0”  P

o Casos indutivos: se Q, R P (ou seja, se Q e R são cadeias de P), então:


 “(” + Q + “)”  P
 “” + Q P
 Q + “” + R  P
 Q + “” + R  P
 Q + “” + R  P
 Q + “” + R  P

“[Jesus disse:] Vinde a mim todos os que estais cansados e sobrecarregados,


e eu vos aliviarei.
Tomais sobre vós o meu jugo e aprendei de mim, que sou manso e humilde de coração;
e encontrareis descanso para a vossa alma.”
(Mateus cap. 11, versos 28-29)

Potrebbero piacerti anche