当前位置:网站首页>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 .
边栏推荐
- How to get the first few pieces of data of each group gracefully
- Wan broadband access technology V EPON Technology
- 介绍汉明距离及计算示例
- level17
- Key review route of probability theory and mathematical statistics examination
- 防护电路中的元器件
- 概率论与数理统计考试重点复习路线
- 假设检验——《概率论与数理统计》第八章学习笔记
- [AI bulletin 20220211] the hard core up owner has built a lidar and detailed AI accelerator
- MySQL in-depth learning - index creation and deletion, index design principles, index failure scenarios, query optimization, index push down ICP
猜你喜欢
![[finebi] the process of making custom maps using finebi](/img/3a/d638dbac6a26c37087ec9550c35e63.png)
[finebi] the process of making custom maps using finebi

3 minutes learn to create Google account and email detailed tutorial!

Construction d'un Cluster redis sous Windows
![[phantom engine UE] realize the animation production of mapping tripod deployment](/img/89/351641c3da7e2acdbf389bc298b75e.png)
[phantom engine UE] realize the animation production of mapping tripod deployment

Interview related high-frequency algorithm test site 3

What are the building energy-saving software

level17

TPG x AIDU | AI leading talent recruitment plan in progress!

Invalid bound statement (not found) in idea -- problem solving

假设检验——《概率论与数理统计》第八章学习笔记
随机推荐
How can CIOs use business analysis to build business value?
次小生成树
A solution to the problem that variables cannot change dynamically when debugging in keil5
How should programmers learn mathematics
SPI read / write flash principle + complete code
A survey of automatic speech recognition (ASR) research
Discussion on the dimension of confrontation subspace
官宣!第三届云原生编程挑战赛正式启动!
Sword finger offer 07 Rebuild binary tree
包 类 包的作用域
[phantom engine UE] only six steps are needed to realize the deployment of ue5 pixel stream and avoid detours! (the principles of 4.26 and 4.27 are similar)
程序员应该怎么学数学
Official announcement! The third cloud native programming challenge is officially launched!
MySQL in-depth learning - index creation and deletion, index design principles, index failure scenarios, query optimization, index push down ICP
The remainder operation is a hash function
取余操作是一个哈希函数
Private collection project practice sharing [Yugong series] February 2022 U3D full stack class 006 unity toolbar
Leetcode 222 number of nodes of complete binary tree
美国5G Open RAN再遭重大挫败,抗衡中国5G技术的图谋已告失败
Sequelize. JS and hasmany - belongsto vs hasmany in serialize js