GeraProva GeraProva Provas com IA para professores do Brasil
Computação5º anoBNCC EF15CO02Difícil⏱ longo

Escreva um pseudocódigo recursivo para calcular C(n,k) = n choose k usando memoização; descreva qual estrutura…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO02

Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Escreva um pseudocódigo recursivo para calcular C(n,k) = n choose k usando memoização; descreva qual estrutura de dados usar como memo (e a chave) e estime a complexidade temporal com memoização.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Pseudocódigo: memo = {} // dicionário/hash com chave (n,k) function C(n,k): if k == 0 or k == n: return 1 if (n,k) in memo: return memo[(n,k)] val = C(n-1,k-1) + C(n-1,k) memo[(n,k)] = val return val Descrição: usar um dicionário (hash map) como estrutura de memoização, indexando por tupla (n,k) para armazenar resultados já calculados. Isso evita recomputações das subproblemas sobrepostos. Complexidade: com memoização o número de pares (n,k) visitados é O(n·k), portanto tempo aproximado O(n·k) e espaço O(n·k) para o memo.

Explicação

O pseudocódigo apresentado utiliza a técnica de memoização para armazenar resultados de subproblemas, evitando cálculos repetidos, o que é essencial em problemas recursivos como o cálculo de combinações. A escolha de um dicionário com tuplas como chave permite acessar rapidamente os resultados armazenados, otimizando o desempenho. A complexidade temporal e espacial é determinada pelo número de combinações únicas de (n, k) que podem ser calculadas, resultando em O(n·k).

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

pseudocódigo recursivo

📌 Objetivo

avaliacao

🧱 Pré-requisitos

funções recursivas · estrutura de dados

📚 Reveja

Revisar conceitos de recursão e memoização em algoritmos.

⚠️ Erro mais comum

O aluno pode confundir a implementação de memoização com a simples chamada recursiva, não armazenando os resultados intermediários.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Algoritmos

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.