[Investor Relations]  |  官方微博

C/C++培训

美国上市公司 · 亿元级外企Java培训企业

  • 全国服务监督电话400-111-8989
  • C++实例海明距离

    发布:达内  来源:达内  时间: 2015年01月13日

  • C++实例海明距离...

  • 【介绍 】

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

    例如:

    xxxxyy 和xxxxzz 的海明距离是2;

    111100 和 111111 的海明距离是2;

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

    【字符串】

    C++ Code

    /*

    version: 1.0

    author: 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

    /*

    version: 1.0

    author: 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;

    }

  • 上一篇:C语言中蓄水池抽样

    下一篇:C语言培训:简单的客户端和服务端程序

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56