当前位置:网站首页>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 .
边栏推荐
- Neural networks and deep learning Chapter 4: feedforward neural networks reading questions
- Function (error prone)
- 10 programming habits that web developers should develop
- Private collection project practice sharing [Yugong series] February 2022 U3D full stack class 006 unity toolbar
- Download the details and sequence of the original data access from the ENA database in EBI
- WeNet:面向工业落地的E2E语音识别工具
- 蛇形矩阵
- Burpsuite grabs app packets
- 介绍汉明距离及计算示例
- C26451: arithmetic overflow: use the operator * on a 4-byte value, and then convert the result to an 8-byte value. To avoid overflow, cast the value to wide type before calling the operator * (io.2)
猜你喜欢
3 minutes learn to create Google account and email detailed tutorial!
防护电路中的元器件
[finebi] the process of making custom maps using finebi
线上故障突突突?如何紧急诊断、排查与恢复
Network security - record web vulnerability fixes
函數(易錯)
[phantom engine UE] package error appears! Solutions to findpin errors
About the prompt loading after appscan is opened: guilogic, it keeps loading and gets stuck. My personal solution. (it may be the first solution available in the whole network at present)
[illusory engine UE] method to realize close-range rotation of operating objects under fuzzy background and pit recording
托管式服务网络:云原生时代的应用体系架构进化
随机推荐
Machine learning -- neural network
[moteur illusoire UE] il ne faut que six étapes pour réaliser le déploiement du flux de pixels ue5 et éviter les détours! (4.26 et 4.27 principes similaires)
OWASP top 10 vulnerability Guide (2021)
Function overloading
直播預告 | 容器服務 ACK 彈性預測最佳實踐
Wan broadband access technology V EPON Technology
[phantom engine UE] realize the animation production of mapping tripod deployment
Inline built-in function
假设检验——《概率论与数理统计》第八章学习笔记
[crampon programming] lintcode decoding Encyclopedia - 1100 strange printer
How should programmers learn mathematics
【虛幻引擎UE】實現UE5像素流部署僅需六步操作少走彎路!(4.26和4.27原理類似)
Variable category (automatic, static, register, external)
可观测|时序数据降采样在Prometheus实践复盘
Leetcode 222 number of nodes of complete binary tree
Label exchange experiment
取余操作是一个哈希函数
官宣!第三届云原生编程挑战赛正式启动!
A survey of automatic speech recognition (ASR) research
如何进行「小步重构」?