/**在信息理论中,两个等长字符串之间的汉明距离
* 是两个字符串对应位置上不同字符的个数,
* 换句话说,汉明距离就是将一个字符串替换成另外一个字符串所需要替换的字符长度。
*例如,1011101和1001001之间的汉明距离是2,
*toned和roses之间的汉明距离是3.
*汉明重量是字符串相对于同样长度的零字符串的汉明距离,
*也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,
*所以 11101 的汉明重量是 4。
*下面的代码展示了在Java中如何计算汉明距离和汉明重量。
*/
package re;
public class HammingDistance {
public static void main(String[] args) {
String str1 = "abcdefg";
String str2 = "aacceeg";
HammingDistance hd = new HammingDistance();
int distance = hd.getDistance(str1, str2);
System.out.println("distance is " + distance);
int weight = hd.getWeight(255);
System.out.println("weight is " + weight);
}
/**
* calculate Hamming Distance between two strings
*
* @author
* @param str1 the 1st string
* @param str2 the 2nd string
* @return Hamming Distance between str1 and str2
*/
public int getDistance(String str1, String str2) {
int distance;
if (str1.length() != str2.length()) {
distance = -1;
} else {
distance = 0;
for (int i = 0; i < str1.length(); i++) {
if (str1.charAt(i) != str2.charAt(i)) {
distance++;
}
}
}
return distance;
}
/**
* calculate Hamming weight for binary number
* @author
* @param i the binary number
* @return Hamming weight of the binary number
*/
public int getWeight(int i) {
int n;
for (n = 0; i > 0; n++) {
i &= (i - 1);
}
return n;
}
}
分享到:
相关推荐
汉明距离(Hamming Distance)是衡量两个DNA序列差异的一种基本方法,它在理解基因变异、进化关系以及基因组比较等方面有着广泛的应用。这里我们将深入探讨DNA序列、汉明距离以及其在MATLAB环境中的实现。 DNA序列...
这个压缩包文件"检验代码_Hammingdistance_GCcontent_DNA_"显然包含了用于检查DNA序列特定属性的程序,具体来说,就是汉明距离(Hamming Distance)和GC含量。下面将详细介绍这两个概念及其在DNA分析中的应用。 **...
汉明距离(Hamming Distance)在信息技术和生物学领域中都是一种重要的概念,特别是在DNA序列分析中,它衡量了两个等长字符串之间的差异程度。在这个"DNA.zip_DNA_基因汉明距离_汉明距离"的压缩包文件中,我们可以...
汉明距离matlab代码汉明_距离 此 Matlab 代码用于查找两个数字的汉明距离。 注意:如果你在你的系统或项目中使用我的代码,你应该总是引用我的论文作为参考 Functions: Main function : main.m Hamming distance ...
汉明距离(Hamming Distance)是信息论中的一个重要概念,用于衡量两个等长字符串(通常是二进制字符串)之间的差异程度。具体而言,汉明距离是指两个字符串中对应位置上不同字符的数量。例如,字符串“1011101”与...
该论文提出了一种新的改进方法,即在LBP的基础上引入汉明距离(Hamming Distance)的约束。汉明距离是衡量两个二进制串差异的度量,通常用于纠错编码和数据传输中的错误检测。在人脸识别中,通过计算LBP编码后的汉明...
在给定的C++代码中,`Solution`类的`hammingDistance`方法就实现了这个算法。它首先计算x和y的异或值,然后通过while循环逐位检查,计算出汉明距离。这种方法效率较高,因为它只遍历了两个整数最小的那个的位数。...
为了解决这些问题,一种基于汉明距离(Hamming Distance)和免疫思想的改进粒子群算法(Improved Particle Swarm Optimization, IHPSO)被提出。 汉明距离是衡量两个字符串差异程度的一种度量,用于表示两个等长...
通过调用这个函数,你可以计算任意两个整数之间的汉明距离,如`hd = hammingDistance(18, 22)`。 在压缩包文件"disthamming.zip"中,很可能包含了这个MATLAB函数的实现,以及可能的测试用例和其他相关文档。解压并...
文章的重点是构建一种对抗性强的属性保留哈希函数,用于处理汉明距离(Hamming Distance)谓词。汉明距离衡量的是两个字符串在对应位置上不同字符的数量。该哈希函数可以区分汉明距离至少达到某个阈值t的输入与距离...
汉明距离(Hamming Distance)和局部敏感哈希(Locality Sensitive Hashing, LSH)是计算机科学中,特别是信息检索和数据挖掘领域里重要的概念。本文将深入探讨这两个概念,以及它们在图像检索中的应用。 首先,...
虹膜图像识别的完整程序,包括预处理,Hough变换定位中心,汉明距离匹配等。(Complete program iris recognition, including pretreatment, Hough transform positioning center, Hamming distance matching.)
其中,汉明距离(Hamming Distance)是一种衡量两个字符串相似度的重要指标,被广泛应用于错误检测、密码学、生物信息学等领域。本文将详细探讨汉明距离的概念、计算方法及其实际应用。 一、汉明距离的定义 汉明...
传统的字符串相似度比较算法,如最长公共子串算法(LCS)、Levenshtein Distance(编辑距离)和汉明距离(Hamming Distance),不能很好地衡量Java错误堆栈之间的相似度。Java错误堆栈具有其自身的特点,需要一种...
在给定的代码中,`HammingDistance`函数实现了方法一,通过异或和位操作计算两个数的汉明距离;`totalHammingDistance`函数使用了方法二,通过两层循环计算整个数组中所有对的汉明距离之和。 需要注意的是,该问题...
参考答案代码public int hammingDistance(int x, int y) {//不同的位会变成1= 0){ //那么只要计算num中1的个数
python 实现 字符串 综合大作业 课程设计 代码 等20个项目 Aho-Corasick算法(Aho Corasick) 字符串排列变换(Alternative String ...汉明距离(Hamming Distance) 印度电话号码验证器(Indian Phone Validator)
汉明距离(Hamming Distance)是指两个等长字符串之间的差异程度,具体来说,它是指将一个字符串变成另一个字符串时需要改变的字符个数。例如,字符串“karolin”与“kathrin”的汉明距离为3,因为需要替换三个字符...
(x)Hash&(y)Histogram:计算出汉明距离(Hamming Distance)或直方图的重合程度并按序检索出结果(x)Hash,包括:aHash, dHash, pHash, (y)Histogram: Histogram, Histogram_split。即先通过对val(query) 进行颜色和...
基于Python实现的多种相似度计算、匹配搜索算法,支持文本、图像,开箱即用...汉明距离(Hamming Distance),编辑距离(Levenshtein Distance),欧氏距离(Euclidean Distance),曼哈顿距离(Manhattan Distance)等