当前位置:网站首页>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 .
边栏推荐
- Reading and visualization of DICOM, MHD and raw files in medical imaging
- flutter 对象和列表
- MacBook installation postgresql+postgis
- MySQL in-depth learning - index creation and deletion, index design principles, index failure scenarios, query optimization, index push down ICP
- All in one 1413: determine base
- PHP reads the INI file and writes the modified content
- Uncover the seven quirky brain circuits necessary for technology leaders
- Neural networks and deep learning Chapter 2: machine learning overview reading questions
- Network security - record web vulnerability fixes
- CUDA Programming atomic operation atomicadd reports error err:msb3721, return code 1
猜你喜欢

Construction d'un Cluster redis sous Windows

解密函数计算异步任务能力之「任务的状态及生命周期管理」

假设检验——《概率论与数理统计》第八章学习笔记

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)

A solution to the problem that variables cannot change dynamically when debugging in keil5

SQL set operation

Components in protective circuit

NetSetMan pro (IP fast switching tool) official Chinese version v5.1.0 | computer IP switching software download

取余操作是一个哈希函数
![[crampon game] MC tutorial - first day of survival](/img/81/82034c0382f545c39bd8c15f132ec7.jpg)
[crampon game] MC tutorial - first day of survival
随机推荐
程序员应该怎么学数学
Managed service network: application architecture evolution in the cloud native Era
English topic assignment (27)
windows下Redis-cluster集群搭建
2022-2028 global and Chinese equipment as a Service Market Research Report
WeNet:面向工业落地的E2E语音识别工具
首席信息官如何利用业务分析构建业务价值?
Function (error prone)
What are the building energy-saving software
10 programming habits that web developers should develop
Sword finger offer 07 Rebuild binary tree
A solution to the problem that variables cannot change dynamically when debugging in keil5
Raki's notes on reading paper: code and named entity recognition in stackoverflow
American 5g open ran suffered another major setback, and its attempt to counter China's 5g technology has failed
Invalid bound statement (not found) in idea -- problem solving
Construction d'un Cluster redis sous Windows
Stage experience
[AI bulletin 20220211] the hard core up owner has built a lidar and detailed AI accelerator
Key review route of probability theory and mathematical statistics examination
Function overloading