Questões de Algoritmos e Estrutura de Dados - Hashing para Concurso
Foram encontradas 96 questões
Considere o seguinte código em uma linguagem de programação hipotética que possui função de hashing.
Considerando-se esse código, sobre o hashing, verifica-se que a(o)
Sobre funções hash, analise os itens a seguir:
I. O SHA1 é uma função de hash que gera como resultado um resumo de 128 bytes.
II. O SHA2 é composto por uma família de algoritmos que incluem versões como SHA-224, SHA-256, SHA-384 e SHA-512.
III. SHA-3 é um subconjunto da família primitiva criptográfica Keccak.
Está(ão) CORRETO(S):
I. Função de Hash: h(x) = x % 10 mapeia uma chave x para um índice entre 0 e 9.
II. Operação de Módulo: % retorna o resto da divisão.
III. Colisões: quando várias chaves mapeiam para o mesmo índice, ocorre uma colisão.
IV. Encadeamento: técnica para resolver colisões na qual cada posição na tabela contém uma lista de chaves.
Nesse contexto, o analista Zudo está implementando um sistema de armazenamento de dados utilizando uma tabela Hash de tamanho 10. Ele escolhe a função de Hash h(x) = x % 10 para mapear as chaves. Ao enfrentar o desafio das colisões, Zudo opta pela técnica de encadeamento para gerenciá-las. Ele então insere as chaves {15, 25, 35, 45, 55} na tabela Hash. A estrutura final dessa tabela será:
I. A Programação Dinâmica resolve problemas complexos dividindo-os em subproblemas mais simples e solucionando esses subproblemas uma única vez, armazenando suas soluções.
II. O princípio da otimalidade de Bellman estabelece que uma solução ótima de um problema de PD pode ser obtida resolvendo-se subproblemas ótimos recursivamente.
III. A Programação Dinâmica só pode ser aplicada a problemas que envolvem decisões discretas.
IV. Em PD, a função de valor (ou função objetivo) é construída de forma recursiva, baseandose em estados e decisões anteriores.
Quais afirmativas estão CORRETAS?
No que se refere ao uso de tabelas de hash para armazenamento de informação, assinale a alternativa correta.
N: INTEIRO V: VETOR [0..N-1] de LISTA<MENSAGEM> Algoritmo Adicionar (M: MENSAGEM) H <- 0 Para i de 0 até Tamanho (M.email) - 1 H <- H + Ord (M.email[i]) Fim Para H <- H Mod N V[H].Incluir(M) Fim Algoritmo
O hash é dado pelo resto da divisão entre a soma dos códigos ASCII do email e o tamanho do vetor de listas. Para que Beatriz obtenha a melhor distribuição das mensagens nas listas:
Sabendo que os caracteres C, V e M correspondem, respectivamente, aos números 67, 86 e 77, a AHash retornará para a chave “CVM”:
I. O MD5 não é propriamente um modelo criptográfico, existindo limitações até mesmo de segurança. Seu hash é constituído por uma estrutura hexadecimal de 32 caracteres.
II. O AES (Advanced Encryption Standard) é um algoritmo de criptografia, porém é unidirecional, não permitindo a descriptografia.
III. O RSA (Rivest-Shamir-Adleman) é um algoritmo de criptografia assimétrica bidirecional.
Conforme as assertivas, responda a alternativa verdadeira:
Em relação a sistemas de gerenciamento de banco de dados não relacionais NoSQL, julgue o item que se segue.
Hashes Redis são coleções não ordenadas de strings
exclusivas que agem como os conjuntos de uma linguagem
de programação; como tal, os hashes Redis assemelham-se
aos dicionários Python, Java HashMaps e Ruby hashes.
Transformar informações em códigos únicos, acelerando o acesso a dados em estruturas como tabelas é a função da técnica chamada hashing. Ela é uma técnica fundamental na programação que permite armazenar e recuperar dados de forma eficiente. O entendimento do hashing é essencial para otimizar algoritmos e melhorar o desempenho de muitas aplicações.
Sobre essa técnica, analise as assertivas a seguir.
I. Hashing serve para comprimir dados para economizar espaço de armazenamento.
II. Acelerar o acesso a dados, tornando-o mais eficiente, é o principal objetivo da técnica hashing.
III. Transformar texto legível em código binário, entendível pelo computador, é um dos objetivos da técnica hashing.
É correto o que se afirma apenas em
No que se refere a vulnerabilidades e ataques a sistemas computacionais e criptografia, julgue o próximo item.
Projetado para velocidade, simplicidade e segurança, o
algoritmo MD (message digest) produz um valor de hash de
128 bites para um tamanho arbitrário da mensagem inserida.
Considere que em uma tabela de dispersão (ou tabela hash) de módulo 9, inicialmente vazia, que usa endereçamento aberto, técnica de tentativa linear para resolver colisões e função de dispersão h(k) = k mod m, onde k é a chave a ser inserida, foram inseridas as seguintes chaves: 3, 14, 15, 81, 65, 19, 35, 40 e 50 (nesta ordem). O número de colisões para a inserção desses dados é: