2020-04-08
描述
计算 2 个值之间的汉明距离。
提示
- 汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以 d(x, y)表示两个字 x,y 之间的汉明距离。对两个字符串进行异或运算,并统计结果为 1 的个数,那么这个数就是汉明距离
- 使用异或运算符
^
查找两个数字之间的差位,并使用toString(2)
将其转换为二进制字符串 - 使用
match(/1/g)
计算字符串中包含1
的数字,并返回其长度
代码
const hammingDistance = (num1, num2) => ((num1 ^ num2).toString(2).match(/1/g) || '').length;
示例
计算 2 和 3 之间的汉明距离:
hammingDistance(2, 3); // 1