Prévia do material em texto
15/04/2022 03:02 Recursão | Coursera https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2/quiz/GxdW0/recursao/attempt?redirectToCover=true 1/6 Recursão Total de pontos 8 1. Assinale as alternativas CORRETAS sobre recursão: 1 / 1 ponto Correto Correto Correto 2. Observe o código abaixo: Assinale a afirmações CORRETAS: 1 / 1 ponto Correto Função recursiva é a função que chama ela mesma. Chamada recursiva é a linha onde é chamada pela primeira vez a função recursiva. Base da recursão é a condição que faz o problema ser definitivamente resolvido. Caso essa condição, essa base da recursão, não seja satisfeita, o problema continua sendo reduzido em instâncias menores até que a condição passe a ser satisfeita. Chamada recursiva é a linha onde a função faz uma chamada a ela mesma. Base da recursão é o conjunto de reduções do problema em instâncias menores. 5 2 3 4 1 return n * fatorial(n-1) if n <= 1: return n else: def fatorial(n): A linha 2 tem a condição que é a base da recursão 15/04/2022 03:02 Recursão | Coursera https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2/quiz/GxdW0/recursao/attempt?redirectToCover=true 2/6 Correto Correto 3.Observe o código abaixo: A linha 2 deve ter a condição que representa a base da recursão desse algoritmo. Assinale as linhas que poderiam substituir a linha 2, sendo que o algoritmo deve retornar o cálculo do e-nésimo valor da série Fibonacci: 0.8 / 1 ponto Correto Você não selecionou todas as respostas corretas Para o algoritmo funcionar corretamente, é necessário trocar a linha 3 por “return 1” A linha 5 tem a condição que é a base da recursão A linha 2 tem a chamada recursiva O algoritmo está correto A linha 5 tem a chamada recursiva 1 2 3 4 5 def fibo(n): <base da recursão> return n else: return fibo(n-1) + fibo(n-2) if (n <= 1): if (n == 2): if (n == 1): if (n >= 0): if (n < 2): 15/04/2022 03:02 Recursão | Coursera https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2/quiz/GxdW0/recursao/attempt?redirectToCover=true 3/6 4.Observe o código abaixo: Se a função acima for chamada como x(10), onde é necessário colocar o comando print(n) para que a função imprima os números de 0 até 10? 1 / 1 ponto Correto 5. Observe o código abaixo: 1 / 1 ponto 8 9 6 7 3 4 5 1 2 <espaço D> <espaço E> x(n-1) <espaço C> <espaço A> else: <espaço B> def x(n): if n == 0: No <espaço A> e no <espaço C> No <espaço B> e no <espaço C> No <espaço B> e no <espaço E> No <espaço A> e no <espaço B> No <espaço A>, no <espaço B> e no <espaço C> No <espaço C> e no <espaço E> No <espaço A> e no <espaço E> Nenhuma das opções apresentadas está correta 6 7 3 4 5 1 2 print(x(5,3)) return 1 else: return x(n-1,m) + x(n-1,m+1) def x(n, m): if n == m or m == 0: 15/04/2022 03:02 Recursão | Coursera https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2/quiz/GxdW0/recursao/attempt?redirectToCover=true 4/6 Qual será o resultado e quantas chamadas recursivas serão realizadas? Correto 6.Observe o código abaixo: Qual será o resultado e quantas chamadas recursivas serão realizadas? 1 / 1 ponto Correto 34 e 12 15 e 2 43 e 6 66 e 8 Nenhuma das alternativas mostra a resposta correta Looping infinito 1 2 3 4 5 6 7 def x(n): if n >= 0 or n <= 2: return n else: return x(n-1) + x(n-2) + x(n-3) print(x(6)) Resultado: 20. Chamadas recursivas: 24 Resultado: 11. Chamadas recursivas: 12 Resultado: 6. Chamadas recursivas: 6 Resultado: 3. Chamadas recursivas: 3 Resultado: 37. Chamadas recursivas: 45 Resultado: 6. Chamadas recursivas: nenhuma. 15/04/2022 03:02 Recursão | Coursera https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2/quiz/GxdW0/recursao/attempt?redirectToCover=true 5/6 7.Observe o código abaixo: Qual será o resultado e quantas chamadas recursivas serão realizadas? 1 / 1 ponto Correto 8.Analise o algoritmo de busca binária abaixo, que é o mesmo apresentado no vídeo: 0 / 1 ponto 7 4 5 6 1 2 3 print(x(6)) else: return x(n-1) + x(n-2) + x(n-3) def x(n): if n >= 0 and n <= 2: return n Resultado: 37. Chamadas recursivas: 45 Resultado: 3. Chamadas recursivas: 3 Resultado: 6. Chamadas recursivas: nenhuma. Resultado: 11. Chamadas recursivas: 12 Resultado: 20. Chamadas recursivas: 24 Resultado: 6. Chamadas recursivas: 6 8 9 10 11 12 13 14 15 6 7 3 4 5 1 2 meio = min + (max-min)//2 if lista[meio] > elemento: return busca_binaria(lista, elemento, min, meio - 1) elif lista[meio] < elemento: return busca_binaria(lista, elemento, meio + 1, max) else: return meio return False else: max = len(lista)-1 if max < min: def busca_binaria(lista, elemento, min=0, max=None): if max == None: 15/04/2022 03:02 Recursão | Coursera https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2/quiz/GxdW0/recursao/attempt?redirectToCover=true 6/6 Quantas chamadas recursivas serão realizadas para encontrar o valor 99 na lista a seguir? a = [-10, -2, 0, 5, 66, 77, 99, 102, 239, 567, 875, 934] Incorreto 4 3 2 1 0