No campo de informação, distância de Hamming igual duas comprimento de uma cadeia é o número de diferentes caracteres na mesma posição, isto é, uma cadeia para substituir o número de substituições necessária uma outra cadeia.
Por exemplo:
A distância de Hamming é 2 xxxxyy e xxxxzz;
111100 e 111111 distância de Hamming é 2;
Para os números binários, o resultado é equivalente ao número de resultados de Hamming distância em uma ^ b 1.
[String]
código C ++
/ *
versão: 1.0
Autor: hellogiser
Data: 2014/05/30
* /
// distância de Hamming de duas cordas
unsigned hamdist (const char * seq1, const char * seq2)
{
// aaabb aaacc
if (str1 == null || str2 == NULL)
return 0;
int len1 = strlen (seq1);
int len2 = strlen (seq2);
if (len1! = len2)
return 0;
unsigned dist = 0;
enquanto (seq1 * && * seq2)
{
dist + = (* str1! = * str2)? 1: 0;
seq1 ++;
seq2 ++;
}
voltar dist;
}
[Digital]
código C ++
/ *
versão: 1.0
Autor: hellogiser
Data: 2014/05/30
* /
// distância Hamming de bits de dois inteiros 0-1
hamdist sem sinal (sem sinal x, y unsigned)
{
// 11111 11100
unsigned dist = 0, val = x ^ y; // XOR
// Contar o número de bits definidos
enquanto (Val)
{
++ dist;
val val & = - 1;
}
voltar dist;
}