javascript
JavaScript计算汉明距离(HammingDistance)
文章目錄
- 前言
- 實現(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é)
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ù)
如果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)。
總結(jié)
以上是生活随笔為你收集整理的JavaScript计算汉明距离(HammingDistance)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用ArcGIS JS API加载WMT
- 下一篇: ArcGIS JS API加载GeoSe