C ++ distancia de Hamming

En el campo de información, distancia de Hamming de dos longitud igual de una cadena es el número de caracteres diferentes en la misma posición, es decir, una cadena para sustituir el número de reemplazos requerido otra cadena.

Por ejemplo:

Distancia de Hamming es 2 xxxxyy y xxxxzz;

111.100 y 111.111 distancia de Hamming es 2;

Para los números binarios, el resultado es equivalente al número de resultados de Hamming distancia en una ^ b 1.

[String]

código C ++

/ *

Versión: 1.0

autor: hellogiser

Fecha: 05/30/2014

* /

// distancia de Hamming de dos cadenas

hamdist sin signo (const char * cadena1, const char * str2)

{

// aaabb aaacc

si (cadena1 == NULL || str2 == NULL)

return 0;

int LEN1 = strlen (str1);

int len2 = strlen (str2);

si (LEN1! = len2)

return 0;

dist unsigned = 0;

while (* && * cadena1 cadena2)

{

dist + = (* cadena1! = * str2)? 1: 0;

str1 ++;

str2 ++;

}

dist retorno;

}
[Digital]

código C ++

/ *

Versión: 1.0

autor: hellogiser

Fecha: 05/30/2014

* /

// distancia de Hamming de dos números enteros 0-1 bits de

hamdist sin signo (x sin signo, sin signo y)

{

// 11111 11100

unsigned dist = 0, val = x ^ y; // XOR

// Contar el número de bits puestos

while (val)

{

++ dist;

val & = val - 1;

}

dist retorno;

}

Publicados 241 artículos originales · ganado elogios 3 · Vistas 3185

Supongo que te gusta

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