文章目录

  • 前言
  • 实现代码
  • 总结

前言

汉明距离表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。

例如:

  • “wised” 与 “roses” 之间的汉明距离是 3
  • 010001 与 100000 之间的汉明距离是 3

这里以计算两个整数的汉明距离为例。

实现代码

<script>const hammingDistance = (num1,num2) => ((num1 ^ num2).toString(2).match(/1/g) || '').length;document.write(hammingDistance(17,32));//3 //17的二进制数: 010001;32的二进制数:100000
</script>

总结

  1. 计算两个整数的汉明距离主要步骤:

Use XOR operator (^) to find the bit difference between the two numbers, convert to a binary string using toString(2). Count and return the number of 1s in the string, using match(/1/g)

通过异或运算计算两个数在二进制上的差异,将其转为二进制字符串,匹配字符串中"1"的个数

  1. 在JavaScript中使用异或(^)运算符返回的值为十进制数,如(17 ^ 32)返回49;
  2. 异或操作:

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

异或也叫半加运算,其运算法则相当于不带进位的二进制加法:
二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1)。

  1. 注意使用match方法时可能返回null

JavaScript计算汉明距离(HammingDistance)相关推荐

  1. html 表格自动计算,HTML表格中的JavaScript计算

    我是 JavaScript的新手,所以我甚至不知道这是否是尝试这个的正确语言,但我想我会尝试.我已经阅读了其他几篇文章,我找不到真正让我知道如何做到这一点的东西,所以我在这里问.我读过的所有例子都涉及 ...

  2. JS、javascript计算两个时间差

    其实,javascript计算时间差的方式非常简单,如果是默认的Date()类型,直接相减就是相差的毫秒数. Date型 var d1 = new Date('2016/03/28 10:17:22' ...

  3. javaScript 计算两个日期的天数相差~~~

    一:计算两个日期相差的天数 比如:    str1  =  "2002-01-20"    str2  =  "2002-10-11"   怎样用javaScr ...

  4. python+opencv 计算图片的感知hash值,来计算汉明距离,简单的找相似图片

    感知哈希算法是一类算法的总称,包括aHash.pHash.dHash.顾名思义,感知哈希不是以严格的方式计算Hash值,而是以更加相对的方式计算哈希值,因为"相似"与否,就是一种相 ...

  5. python计算汉明距离_20190503-汉明距离

    难度分类 简单 题目描述 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目.给出两个整数 x 和 y,计算它们之间的汉明距离 注意: 0 ≤ x, y < 231. 示例: 输 ...

  6. python计算汉明距离_有效地使用python计算汉明距离

    python中的 distance软件包提供汉明距离计算器: import distance distance.levenshtein("lenvestein", "le ...

  7. JavaScript 计算细节解惑

    JavaScript Puzzlers! 被称为 javascript 界的专业八级测验,感兴趣的 jser 可以去试试. 我试了一下, 36 道题只做对了 19 道, 算下来正确率为 53%,还没有 ...

  8. JavaScript计算圆周率(解析几何+定积分)

    最近数学预习到选修本的定积分,前一向用它解决了物理上的正弦交流电有效值问题,前几天突发奇想,想用它来计算圆周率.于是我花了半节物理课的时间研究了一下,得出了以下求解方法. 首先我们知道半径为r,圆心为 ...

  9. JavaScript 计算地下城堡2资源何时满仓

    由于悲哀的发现,用Python写的代码打开不是很方便,于是又写了一个HTML页面. 用的JavaScript脚本. <!DOCTYPE html PUBLIC "-//W3C//DTD ...

最新文章

  1. windows消息队列。DispatchMessage。 PostMessage
  2. intellij idea不显示git push按钮的解决办法
  3. (第一篇)FFilmation Glossary 术语
  4. 【每日一题】8月14日题目精讲 [SCOI2010]游戏
  5. mtk android手机 代码问题,MTK用户必备 Android手机也能系统恢复
  6. windows--reg--删除注册表指定的键(也叫项)、指定的值
  7. tomcat7 IP限制配置
  8. QT输出问题[zhaxok] Enter
  9. linux安装包apr安装说明,Linux下安装Apr及其Apr-util的基本步骤
  10. AI弄潮!深圳第一高楼智能访客系统“刷脸”通行
  11. 利用H5SVG实现线性动画效果
  12. 从现在开始探索工业元宇宙讲座发言稿 34500字
  13. 传奇开外网需要映射那几个端口
  14. 计算广告小窥[下]要啥自行车!
  15. TensorFlow2.8.0报错TypeError: Descriptors cannot not be created directly.
  16. 社会兼职工作实践报告
  17. 串口重定向(STM32 F411RET6开发版)
  18. 负载均衡之跑马竞赛算法
  19. 去哪儿笔试:座位安排问题
  20. 常用单电源运放的偏置方法

热门文章

  1. 为什么算法渐进复杂度中对数的底数总为2
  2. Android 分享控件
  3. ArcGIS License Manager 更新
  4. 修改Chrome的UserAgent
  5. Nexys3学习手记1:写在前面的话
  6. Spring EL bean引用实例
  7. 优秀ASP.NET程序员修炼之路
  8. Nginx的负载均衡 - 保持会话 (ip_hash)
  9. 使用SVN的hook将更新内容同步到测试环境
  10. Servlet/jsp和Action/jsp传值