日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript计算汉明距离(HammingDistance)

發(fā)布時間:2025/3/21 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript计算汉明距离(HammingDistance) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 實現(xiàn)代碼
  • 總結(jié)

前言

漢明距離表示兩個(相同長度)字對應(yīng)位不同的數(shù)量,我們以d(x,y)表示兩個字x,y之間的漢明距離。對兩個字符串進行異或運算,并統(tǒng)計結(jié)果為1的個數(shù),那么這個數(shù)就是漢明距離。

在信息論中,兩個等長字符串之間的漢明距離是兩個字符串對應(yīng)位置的不同字符的個數(shù)。

例如:

  • “wised” 與 “roses” 之間的漢明距離是 3
  • 010001 與 100000 之間的漢明距離是 3

這里以計算兩個整數(shù)的漢明距離為例。

實現(xiàn)代碼

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

總結(jié)

  • 計算兩個整數(shù)的漢明距離主要步驟:
  • 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)

    通過異或運算計算兩個數(shù)在二進制上的差異,將其轉(zhuǎn)為二進制字符串,匹配字符串中"1"的個數(shù)

  • 在JavaScript中使用異或(^)運算符返回的值為十進制數(shù),如(17 ^ 32)返回49;
  • 異或操作:
  • 如果a、b兩個值不相同,則異或結(jié)果為1。如果a、b兩個值相同,異或結(jié)果為0。

    異或也叫半加運算,其運算法則相當(dāng)于不帶進位的二進制加法:
    二進制下用1表示真,0表示假,則異或的運算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1)。

  • 注意使用match方法時可能返回null
  • 總結(jié)

    以上是生活随笔為你收集整理的JavaScript计算汉明距离(HammingDistance)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。