Pergunta

O receptor é o meu site, o remetente é o mesmo, mas o meio é barulhento, um usuário. Ele irá ler um código alfanumérico de comprimento 6 e, posteriormente, inserir o mesmo código para identificar um recurso. Um bom uso para um código de correção de erros, pensei, e em vez de fazer a pesquisa, pensei em apenas colocar a questão lá fora. Ou posso estar fazendo isso da maneira errada, já que a situação é como enviar um dicionário perfeito junto com cada transmissão.

Os requisitos do código são simplesmente:

  1. 6 dígitos alfanuméricos, para começar até que eu acabe, de qualquer maneira.
  2. Se o usuário errar, ainda poderei identificar o recurso certo.
  3. Nenhum recurso é preferível ao errado.
  4. Fácil de codificar ou ter bibliotecas gratuitas para .net

Alguma sugestão?

Editar:

Parece-me que metade dos requisitos podem ser cumpridos escolhendo os códigos com sabedoria, ou seja, com distância suficiente entre eles. Essa estratégia parece ainda melhor quando eu percebo que quanto mais tempo se passou desde que os códigos foram gerados, mais improvável eles serão usados.

Os códigos não serão digitados diretamente no meu site, por isso não posso fornecer feedback imediato. Na verdade, podemos presumir que, a menos que eu possa verificar o código, não consigo nem identificar o usuário, então não posso dar feedback.

Foi útil?

Solução

Bem, não, sua abordagem de primeiro pedido deve ser verificar se o usuário inseriu o número correto. Um erro de digitação humano de um número ou string é 99% do problema. Isso está bem estabelecido na prática, o dígito de verificação é usado em muitos códigos comuns, UPC e ISBN sendo o aqueles que você veria todos os dias. Você pode sinalizá-lo, eles podem redigitá-lo novamente.

Códigos de correção de erros também são comuns, mas têm uma aplicação muito diferente. Tradicionalmente é usado em meios de sinalização digital , com o objetivo de detectar e corrigir erros de bit. Reed-Solomon é o gorila de cem libras lá, realmente colocado no mapa pelo CD de música.

Isso realmente não funciona bem na prática com um humano, eles introduzirão pelo menos 6 bits de dados incorretos ao digitar incorretamente uma tecla. Isso é muito difícil de corrigir, você teria que adicionar muitos e muitos bits de redundância às letras adjacentes, tornando mais a probabilidade de o código ser digitado incorretamente. A melhor maneira de códigos legíveis por humanos é fazer com que o código faça sentido para um ser humano. Algo que dispara a resposta 'isso parece errado '. Como um nome dado, desde que você não seja filho de Frank Zappa. Mas, caso contrário, a base de códigos como letra-letra + números. Etcetera.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top