Ir ao conteúdo
  • Cadastre-se

C Questão de programação sobre função Hash


Posts recomendados

galera, não estou conseguindo fazer a seguinte questão, gostaria de uma ajuda:

 

Uma função hash é um algoritmo que mapeia dados de comprimento variável para dados de comprimento fixo. Uma empresa definiu a forma de geração de uma string qualquer da seguinte forma:  

Você terá como entrada uma string alfabética de tamanho qualquer e um inteiro que define o tamanho do bloco e que funcionará como chave da função. A partir daí o valor de cada letra da string será calculado da seguinte forma

Valor = (Posição no alfabeto) + (posição no bloco) + (número do bloco)

Todas posições são baseadas em zero. 'A' tem posição 0 no alfabeto, 'B' tem posição 1 no alfabeto, e assim por diante o primeiro bloco é o bloco 0.  

O cálculo de hash retornado é o resto da divisão soma de todos os valores de caracteres da entrada por 100. Por exemplo, se a entrada for “ABcdE” e a chave for  4 teremos:

 

A = 0 + 0 + 0 = 0

B = 1 + 1 + 0 = 2

c = 2 + 2+ 0 = 4

d = 3 + 3 + 0 = 6

E = 4 + 0 + 1 = 5

 

O cálculo final de hash será o resto da divisão de 0 + 2+ 4 + 6 + 5 = 17

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O Quadro, para mim, fará sentido somente Se:

  • • Todos em (número do bloco) tiverem  1 ou 0;
  • • Em (posição no bloco) E deve ter 4.

 

15 horas atrás, Desesperado333 disse:

A = 0 + 0 + 0 = 0

B = 1 + 1 + 0 = 2

c = 2 + 2+ 0 = 4

d = 3 + 3 + 0 = 6

E = 4 + 0 + 1 = 5

Capturar.PNG

 

 

valeu!

~~ / ~~

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...