当前位置:网站首页>Introduce Hamming distance and calculation examples
Introduce Hamming distance and calculation examples
2022-07-05 04:38:00 【Dream painter】
Hamming distance (Hamming distance) It is to calculate the sum of the number of different corresponding elements between two vectors . In this paper, R、Python The calculation process of language .
Overview of Hamming distance
Hamming distance is based on American mathematician Richard · It's named after Han Ming , He was in 1950 The example measurement index was proposed in the paper on Hamming code in . It is widely used in many disciplines , Such as information theory 、 Coding theory and cryptography .
give an example :
“karolin” and “kathrin” The Hamming distance between two strings is s 3 ( The difference characters are : r-t, o-h, l-r),
1011100 and 1001000 The distance between Han and Ming is 2 ( Different binary numbers are : 1-0 and 1-0)
31738 and 32337 The distance between Han and Ming is 3 ( Different integer digits : 1-2, 7-3, and 8-7).
Hamming distance has proved to be very useful in solving many problems . for example , In coding theory, it is used for error detection and error correction codes ; In genetics, it is used to measure genetic differences ; Used to find similarities or differences in machine learning algorithms .
Implementation function
Suppose you have two vectors x = [1, 2, 3, 4] ;y = [1, 2, 5, 7]
.
The Hamming distance between them is 2, Because the last two corresponding elements are different .
R The computational logic of the language is :
sum(x != y)
Python The calculation process of is :
# Custom function implementation
def hammingDistance(s1, s2):
""" Returns the Hamming distance between equal length sequences """
if len(s1) != len(s2):
raise ValueError("Undefined for sequences of unequal length")
return sum(el1 != el2 for el1, el2 in zip(s1, s2))
You can also use it scipy.spatial.distance package hamming The function calculates directly .
Example 1( Binary type )
The following example calculates the distance between two including binary vectors :
# R Language implementation
# Create a vector
x <- c(0, 0, 1, 1, 1)
y <- c(0, 1, 1, 1, 0)
sum(x != y)
# [1] 2
Python Code implementation :
from scipy.spatial.distance import hamming
x = [0, 1, 1, 1, 0, 1]
y = [0, 0, 1, 1, 0, 0]
hamming(x, y) * len(x)
# 2.0
Example 2( value type )
Hamming distance of numeric type vector :
# Create a vector
x <- c(7, 12, 14, 19, 22)
y <- c(7, 12, 16, 26, 27)
# Calculate Hamming distance
sum(x != y)
# [1] 3
Python Code implementation :
from scipy.spatial.distance import hamming
x = [7, 12, 14, 19, 22]
y = [7, 12, 16, 26, 27]
hamming(x, y) * len(x)
# 3.0
Example 3( String type )
Calculate Hamming distance of string type :
# Create a vector
x <- c('a', 'b', 'c', 'd')
y <- c('a', 'b', 'c', 'r')
# Calculate Hamming distance
sum(x != y)
# [1] 1
Python Language implementation :
from scipy.spatial.distance import hamming
# Define an array
x = ['a', 'b', 'c', 'd']
y = ['a', 'b', 'c', 'r']
hamming(x, y) * len(x)
# 1.0
summary
This paper introduces the Hamming distance , And introduce through examples R and Python The implementation process of language .
边栏推荐
- 程序员应该怎么学数学
- English topic assignment (27)
- Raki's notes on reading paper: code and named entity recognition in stackoverflow
- OWASP top 10 vulnerability Guide (2021)
- TPG x AIDU|AI领军人才招募计划进行中!
- Pointer function (basic)
- A solution to the problem that variables cannot change dynamically when debugging in keil5
- Stage experience
- Burpsuite grabs app packets
- Components in protective circuit
猜你喜欢
A solution to the problem that variables cannot change dynamically when debugging in keil5
Aperçu en direct | Services de conteneurs ACK flexible Prediction Best Practices
Label exchange experiment
[uniapp] system hot update implementation ideas
QT Bluetooth: a class for searching Bluetooth devices -- qbluetooth devicediscoveryagent
取余操作是一个哈希函数
解密函数计算异步任务能力之「任务的状态及生命周期管理」
Private collection project practice sharing [Yugong series] February 2022 U3D full stack class 006 unity toolbar
MacBook installation postgresql+postgis
The 22nd Spring Festival Gala, an immersive stage for the yuan universe to shine into reality
随机推荐
WeNet:面向工业落地的E2E语音识别工具
Interview related high-frequency algorithm test site 3
A solution to the problem that variables cannot change dynamically when debugging in keil5
解密函数计算异步任务能力之「任务的状态及生命周期管理」
How to carry out "small step reconstruction"?
English topic assignment (26)
Aperçu en direct | Services de conteneurs ACK flexible Prediction Best Practices
Introduction to RT thread kernel (5) -- memory management
How should programmers learn mathematics
Components in protective circuit
mxnet导入报各种libcudart*.so、 libcuda*.so找不到
2022-2028 global and Chinese FPGA prototype system Market Research Report
windows下Redis-cluster集群搭建
English topic assignment (27)
蛇形矩阵
Error statuslogger log4j2 could not find a logging implementation
概率论与数理统计考试重点复习路线
[phantom engine UE] realize the animation production of mapping tripod deployment
美国5G Open RAN再遭重大挫败,抗衡中国5G技术的图谋已告失败
【虛幻引擎UE】實現UE5像素流部署僅需六步操作少走彎路!(4.26和4.27原理類似)