zoukankan      html  css  js  c++  java
  • 64. 海明距离(Hamming Distance)

    【本文链接】

    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

    个人学习笔记,欢迎拍砖!---by hellogiser

    Author: hellogiser
    Warning: 本文版权归作者和博客园共有,欢迎转载,但请保留此段声明,且在文章页面明显位置给出原文连接。Thanks!
    Me: 如果觉得本文对你有帮助的话,那么【推荐】给大家吧,希望今后能够为大家带来更好的技术文章!敬请【关注】
  • 相关阅读:
    CF1450H2
    CF1379F2
    CF1217F
    CF1393E2
    CF1510H
    CF1514E
    CF1515G
    CF1516E
    在pycharm中导入PyMysql出错,解决方法
    搭建fastdfs文件服务器
  • 原文地址:https://www.cnblogs.com/hellogiser/p/hamming-distance.html
Copyright © 2011-2022 走看看