当前位置:网站首页>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 can CIOs use business analysis to build business value?
- Function template
- Error statuslogger log4j2 could not find a logging implementation
- Burpsuite grabs app packets
- [crampon game] MC tutorial - first day of survival
- [phantom engine UE] package error appears! Solutions to findpin errors
- English topic assignment (26)
- 次小生成树
- 指针函数(基础)
猜你喜欢
Web开发人员应该养成的10个编程习惯
CSDN正文自动生成目录
Network security - record web vulnerability fixes
windows下Redis-cluster集群搭建
Official announcement! The third cloud native programming challenge is officially launched!
【虛幻引擎UE】實現UE5像素流部署僅需六步操作少走彎路!(4.26和4.27原理類似)
[goweb development] Introduction to authentication modes based on cookies, sessions and JWT tokens
User behavior collection platform
Private collection project practice sharing [Yugong series] February 2022 U3D full stack class 006 unity toolbar
Invalid bound statement (not found) in idea -- problem solving
随机推荐
Practice | mobile end practice
可观测|时序数据降采样在Prometheus实践复盘
【thingsboard】替换首页logo的方法
SPI read / write flash principle + complete code
[Business Research Report] top ten trends of science and technology and it in 2022 - with download link
Invalid bound statement (not found) in idea -- problem solving
mxnet导入报各种libcudart*.so、 libcuda*.so找不到
[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)
All in one 1413: determine base
Function template
蛇形矩阵
函数(易错)
Matplotlib draws three-dimensional scatter and surface graphs
Machine learning -- neural network
You Li takes you to talk about C language 7 (define constants and macros)
Sword finger offer 04 Search in two-dimensional array
Burpsuite grabs app packets
OWASP top 10 vulnerability Guide (2021)
Mxnet imports various libcudarts * so、 libcuda*. So not found
假设检验——《概率论与数理统计》第八章学习笔记