1. Primeira lei.
2. Segunda lei.
3. Terceira lei.
I. Deve mudar seu estado para se aproximar do caso básico.
II. Deve chamar a si mesmo, recursivamente.
III. Deve possuir um caso básico.
Assinale a alternativa que correlaciona adequadamente os dois grupos de informação.
Resposta correta: A) 1-III; 2-I; 3-II
I. A técnica de memoização tem como objetivo evitar chamadas repetidas a funções recursivas custosas.
II. Uma função recursiva com memoização sempre executará mais rápido que sua respectiva função não recursiva.
III. A técnica de memoização consome mais memória.
Resposta correta: D) I e III
I. O problema da Torre de Hanói é exemplo clássico de um problema resolvido com facilidade por meio da recursão.
II. O caso base (ou caso básico) é necessário em toda função recursiva escrita corretamente.
III. As funções recursivas em Python apresentam grandes benefícios em relação à melhora da eficiência.
Resposta correta: B) V - V - F.
def func(n):
if n <= 1:
return 1
else:
return n * func(n - 1)
print(func(4))Resposta correta: B) O programa irá retornar o fatorial de 4.
Resposta correta: A) Memoização.
( ) Uma função recursiva deve sempre ter um critério de parada.
( ) Uma função recursiva sempre será mais rápida que uma função não recursiva.
( ) Função recursiva é aquela que chama um método implementado em outra classe.
( ) Funções recursivas são úteis para resolver problemas cuja definição é também recursiva.
Resposta correta: C) V-F-F-V
Resposta correta: E) sorted()
Resposta correta: E) f(x) = f(x-1) + x
I. Se n for um valor pequeno, o custo adicional para ordenar a lista pode não compensar.
II. As comparações requeridas começam com uma lista de tamanho n/2, depois n/4, depois n/6, depois n/8 e assim sucessivamente enquanto o elemento procurado não tiver sido encontrado, e a lista não for vazia.
III. O número máximo de comparações requeridas é dado por nlog ( n ).
IV. A análise da busca binária elimina metade dos itens que restam a cada comparação.
Resposta correta: E) I e IV, apenas.
I. O uso da recursividade exigida em problemas como o cálculo de fatorial ou cálculo da série de Fibonacci podem ocasionar problemas.
PORQUE
II. Existem chances de que o subproblema resolvido na árvore de recursão já esteja resolvido e continue sendo resolvido provocando uma sobrecarga.
Resposta correta: C) As asserções I e II são verdadeiras, e a II é uma justificativa da I.
I. ( ) Toda função recursiva deve conter uma condição que estabelece o ponto em que ela deve parar de chamar a si própria.
II. ( ) Funções recursivas usam repetição por meio de comandos e utilizam uma condição de teste que, ao falhar, finaliza a iteração.
III. ( ) Funções iterativas usam repetição por meio de várias chamadas a uma rotina e utilizam o alcance de um caso trivial (ou caso básico) para serem finalizadas.
IV. ( ) A recursão entra em loop infinito nos casos em que a condição de parada (ou caso básico) nunca for atingida.
Assinale a alternativa que apresenta a sequência correta.
Resposta correta: B) V - F - F - V.