Aleatoriedade e distância

Aleatoriedade e distância

por Eduardo Menezes de Morais -
Número de respostas: 1
Bem, vamos lá Hugo. Estamos em dúvida na nossa função hash e talvez você possa ajudar:

Você afirmou que vai testar a verificação considerando um código válido e fazendo modificacoes nele para conseguir outro desconto. Isso será feito com testes automatizados, procurando todas as possibilidades, ou apenas algumas entradas e modificações aleatórias?
A questão é que as funções hash são fortes no sentido que cada bit da função depende de todos os bits do Id do aluno. A probabilidade de uma mudança aleatória continuar na mesma classe é (1/2n) onde n é o tamanho do hash (bom, mas não tanto assim, pq com 20 bits sobra pouco espaço)
Se a análise de "distância" que você fizer for da menor distância possível, é ruim para nós pois para alguns poucos IDs essa distância é curta ao se alterar alguns certos bits (encontrar quais é um problema dificil). Mas se for aleatório, a probabilidade de você escolher bem esse Id e bem esses bits é muito pequena, então é bom.
Então como isso será avaliado isso? Mínimo de mudanças ou valor esperado de mudanças necessárias? A dificuldade de se conseguir esse mínimo será analisada?
Em resposta à Eduardo Menezes de Morais

Re: Aleatoriedade e distância

por Hugo Corbucci -
Bom,
se vocês já pensaram em quão difícil é de chegar de um número válido ao outro, já está ótimo sorriso
Só me dêem provas disso no relatório.

Isso é apenas uma exigência para ninguém me implementar um negócio tipo: soma os 14 primeiros bits e pega os 6 primeiros bits do resultado como verificação.

O que eu não quero é um algoritmo tonto que é muito fácil de eu saber que se eu mudar o bit 3 para 1 e o 17 para 0, dá certo (tipo, números válidos tem um número par de bits) e coisas do tipo. sorriso