Questão nº 45
Questão de Ciência de Dados · FGV CGU 2021 - Tarde (nº 45)
Analise o código Python a seguir.
```python
x = lambda a, b: a + [a[-1] + a[-2] + b]
y=[-1,0]
for i in range(7):
y = x(y, i)
print (y)
```
O resultado produzido pela execução desse código na IDLE Shell 3.9.9 é:
- A[-1, 0, -1, -1, -2, -3, -5, -8, -13]
- B[0, -1, 4, 9, 18, 33, 51, 84]
- C[-1, 0, -1, -2, -3, -5, -8, -13, -21]
- D[-1, 0, -1, 0, 1, 4, 9, 18, 33] (alternativa correta)
- E[-1, 0, -1, 4, 9, 18, 33, 51]
Resposta comentada
Gabarito Alternativa D
Conceito-chave: A função lambda cria uma função anônima que, aqui, recebe uma lista a e um número b, e retorna uma nova lista formada por a mais um elemento calculado como a[-1] + a[-2] + b. O for atualiza a variável y a cada iteração, então o valor de b (que é i) muda, mas a lógica de soma dos dois últimos elementos permanece.
- (A) Incorreta: Os valores decrescem de forma linear (Fibonacci com soma de
b), mas a partir do 3º elemento os números não batem com a sequência real; a armadilha é tentar aplicar a lógica de Fibonacci sem considerar quebé somado a cada passo, alterando o padrão. - (B) Incorreta: Começa com
[0, -1](inverte a ordem inicial) e os valores positivos crescentes são fruto de uma interpretação errada de quebé multiplicado ou que a lista é reordenada; a pegadinha é achar quea[-1] + a[-2]é sempre-1, o que não ocorre. - (C) Incorreta: Segue uma sequência de Fibonacci negativa, mas ignora completamente o
+ b; a armadilha é confundir com a sequência clássica de Fibonacci, onde cada termo é a soma dos dois anteriores, sem acréscimo externo. - (D) Correta: Executando passo a passo:
y=[-1,0];i=0→[-1,0,-1];i=1→[-1,0,-1,0];i=2→[-1,0,-1,0,1];i=3→[-1,0,-1,0,1,4];i=4→[-1,0,-1,0,1,4,9];i=5→[-1,0,-1,0,1,4,9,18];i=6→[-1,0,-1,0,1,4,9,18,33]. O padrão é: cada novo elemento = soma dos dois últimos +i, e oicresce de 0 a 6. - (E) Incorreta: Pula o
0na posição 4 (deveria ter0após-1), pois a armadilha é achar quei=1gera-1+0+1=0, mas o código adiciona o0antes de calcular o próximo, então a sequência correta tem dois0s consecutivos no início.
Fonte: FGV CGU 2021 - Tarde Auditor Federal de Finanças e Controle - Área Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.