Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Apostila de C
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
5
Issues
5
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
PET Computação
Apostila de C
Commits
460866df
Commit
460866df
authored
Aug 03, 2015
by
Luis Allan Kunzle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revisão ortográfica e gramatical.
parent
b598291b
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
4 additions
and
6 deletions
+4
-6
recursividade.tex
recursividade.tex
+4
-6
No files found.
recursividade.tex
View file @
460866df
...
...
@@ -17,7 +17,6 @@ $$n^0 = 1$$
$$
n
^
k
=
n.n
^{
k
-
1
}$$
Observe que, no exemplo acima, a exponenciação
$
n
^
k
$
está sendo definida através de
uma outra exponenciação
$
(
n
^{
k
-
1
}
)
$
, ou seja, este é um caso em que a exponenciação
é definida através dela mesma (o que é uma definição recursiva ou também chamada de recorrência).
...
...
@@ -26,7 +25,7 @@ Analisando um pouco melhor o exemplo acima, $n^{k-1}$ também é uma exponencia
portanto poderia utilizar a mesma definição para se definir, ou seja, se tomamos
$
n
^{
k
-
1
}
=
n.n
^{
k
-
2
}$
e assim podemos definir,
$
n
^{
k
-
3
}$
, etc.
Note que deve
ria
haver um momento em que a definição termina, pois senão seria
Note que deve haver um momento em que a definição termina, pois senão seria
impossível calcular
$
n
^
k
$
. Por isso, toda definição recursiva deve ser acompanhada
de um caso trivial que será o final da definição. No exemplo apresentado,
$
n
^
0
=
1
$
é o caso trivial e determina o final da recursividade sobre
$
n
^
k
$
.
...
...
@@ -46,7 +45,6 @@ já que podem ser definidas através delas mesmas.
Para uma linguagem permitir recursividade, uma função deve estar apta a chamar a si própria. Um
exemplo clássico de recursividade em programação é a função que calcula o fatorial de um número.
Exemplo 1: Duas versões de fatorial
\begin{lstlisting}
// não recursiva
...
...
@@ -96,11 +94,11 @@ são novas.
Quando cada chamada recursiva retorna, as antigas variáveis locais e os parâmetros são removidos da
pilha e a execução recomeça no ponto de chamada da função dentro da função.
A principal vantagem das funções recursivas é que elas podem ser usadas para criar versões mais
clara
s
e
mais simples
de muitos algoritmos complexos do que os seus equivalentes iterativos.
A principal vantagem das funções recursivas é que elas podem ser usadas para criar versões mais
simple
s
e
de mais fácil compreensão
de muitos algoritmos complexos do que os seus equivalentes iterativos.
Por exemplo, o algoritmo de ordenação rápida é bastante difícil de ser implementado pelo modo
iterativo.
Também, algun
s problemas, especialmente os relacionados com IA (inteligência artificial),
iterativo.
Além deste, diverso
s problemas, especialmente os relacionados com IA (inteligência artificial),
levam a si próprios a soluções recursivas. Finalmente, muitas definições são naturalmente recursivas, o
que torna muito mais fácil implementá-las utilizando recursividade.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment