码迷,mamicode.com
首页 > 其他好文 > 详细

64. 海明距离(Hamming Distance)

时间:2014-06-03 06:42:51      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:c   style   blog   code   a   http   

【本文链接】

http://www.cnblogs.com/hellogiser/p/hamming-distance.html

介绍

在信息领域,两个长度相等的字符串的海明距离是在相同位置上不同的字符的个数,也就是将一个字符串替换成另一个字符串需要的替换的次数。

例如:

xxxxyyxxxxzz的海明距离是2;

111100 和 111111 的海明距离是2;

对于二进制数字来说,海明距离的结果相当于a^b结果中1的个数。

【字符串】

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
/*
     version: 1.0
     author: hellogiser
     blog: http://www.cnblogs.com/hellogiser
     date: 2014/5/30
*/

// hamming distance of two strings
unsigned hamdist(const char *str1, const char *str2)
{
    
// aaabb aaacc
    if (str1 == NULL || str2 == NULL)
        
return 0;

    
int len1 = strlen(str1);
    
int len2 = strlen(str2);
    
if (len1 != len2)
        
return 0;

    
unsigned dist = 0;
    
while(*str1 && *str2)
     {
         dist += (*str1 != *str2) ? 
1 : 0;
         str1++;
         str2++;
     }
    
return dist;
}

【数字】

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
/*
     version: 1.0
     author: hellogiser
     blog: http://www.cnblogs.com/hellogiser
     date: 2014/5/30
*/

// hamming distance of two integer 0-1 bits
unsigned hamdist(unsigned x, unsigned y)
{
    
//  11111 11100
    unsigned dist = 0, val = x ^ y; // XOR

    
// Count the number of set bits
    while(val)
     {
         ++dist;
         val &= val - 
1;
     }

    
return dist;
}

【参考】

http://blog.csdn.net/fuyangchang/article/details/5637464

http://en.wikipedia.org/wiki/Hamming_distance

http://my.oschina.net/u/1401481/blog/223223

【本文链接】

http://www.cnblogs.com/hellogiser/p/hamming-distance.html

64. 海明距离(Hamming Distance),布布扣,bubuko.com

64. 海明距离(Hamming Distance)

标签:c   style   blog   code   a   http   

原文地址:http://www.cnblogs.com/hellogiser/p/hamming-distance.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!