distância de Hamming C ++

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;

}

Publicado 241 artigos originais · ganhou elogios 3 · Vistas 3185

Acho que você gosta

Origin blog.csdn.net/it_xiangqiang/article/details/105148258
Recomendado
Clasificación