Num fluxo contínuo de dados com memória limitada, deseja-se testar rapidamente se um dado já apareceu…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Num fluxo contínuo de dados com memória limitada, deseja-se testar rapidamente se um dado já apareceu, aceitando alguns falsos positivos mas sem falsos negativos. Qual estrutura técnica é indicada?
- A) Armazenar dados em uma árvore binária para testes rápidos.
- B) Utilizar um hashmap para rastrear a frequência de dados.
- C) Implementar uma lista de verificação simples em vez de filtro de Bloom.
- D) Usar um filtro de Bloom configurado com k funções de hash.
- E) Usar um conjunto tradicional para armazenar dados já vistos.
✅ Resposta correta: alternativa D
Resolução passo a passo
- O enunciado pede uma estrutura para testar rapidamente se um dado já apareceu, em fluxo contínuo, com memória limitada, aceitando falsos positivos e não aceitando falsos negativos. Passo 2: Essa combinação de requisitos é exatamente a característica do filtro de Bloom, que usa um vetor de bits e k funções de hash. Se o elemento foi inserido, todos os k bits estarão ligados, então nunca ocorre falso negativo; porém, bits ligados por outros elementos podem gerar falso positivo. Passo 3: Por isso a alternativa D está correta e corresponde ao gabarito oficial. Passo 4: A alternativa A está errada porque uma árvore binária armazena os dados inteiros, consumindo muita memória em fluxos contínuos, e não oferece a relação probabilística pedida. Passo 5: A alternativa B está errada porque um hashmap guarda cada chave e a frequência, exigindo memória proporcional ao número de dados, o que conflita com a restrição de memória limitada. Passo 6: A alternativa C está errada porque uma lista de verificação simples guarda todos os itens, cresce sem limite e não é uma solução de espaço reduzido. Passo 7: A alternativa E está errada porque um conjunto tradicional também armazena todos os dados já vistos, sendo exato, mas sem controle de memória. Passo 8: Conclusão: o único método que equilibra memória limitada, ausência de falsos negativos e tolerância a falsos positivos é o filtro de Bloom com k funções de hash.
💡 Dica: Considere as características das estruturas de dados em computação.
Alternativa por alternativa
O aluno acredita que qualquer estrutura de busca, como a árvore binária, serve para testes rápidos de presença sem considerar o custo de memória do fluxo contínuo.
O aluno confunde a necessidade de testar presença com a de contar frequências, supondo que o hashmap é a solução rápida sem perceber que ele armazena todas as chaves.
Por que engana: Confundir o uso de uma lista de verificação simples com um filtro de Bloom, acreditando que ambos têm a mesma eficiência em termos de falsos positivos.
O aluno entende que a lista simples é uma alternativa mais simples ao filtro de Bloom, sem notar que ela cresce com o número de dados e não atende à memória limitada.
Filtro de Bloom é compacto e oferece teste de pertinência com falsos positivos controláveis e sem falsos negativos, adequado para fluxos com memória restrita.
O aluno pensa que o conjunto tradicional é a melhor escolha por ser exato e rápido, ignorando a restrição de memória limitada do enunciado.
Raio-X da questão
fluxo contínuo de dados
avaliacao
estruturas de dados · funções de hash
Revisar estruturas de dados e suas aplicações em computação.
Confundir o uso de uma lista de verificação simples com um filtro de Bloom, acreditando que ambos têm a mesma eficiência em termos de falsos positivos.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Você precisa armazenar uma coleção onde testar a existência de um elemento seja muito rápido e a ordem dos elementos não…
- Ao projetar um algoritmo que detecta padrões em uma sequência de eventos, qual estrutura de dados facilita buscas e…
- Em um algoritmo que processa uma lista de alunos como dados e precisa evitar registros duplicados, qual estrutura de…
- Um programa guarda muitos números, precisa inserir e remover números com frequência e fazer buscas rápidas, sem…
- Em um algoritmo que deve verificar rapidamente se um código de estudante já existe em uma grande coleção de dados, qual…
- Em um programa que simula um caixa eletrônico, é preciso consultar se um número de conta está cadastrado e impedir que…
🔎 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
