JavaScriptでマンハッタン距離とユークリッド距離を算出する方法

マンハッタン距離とは

マンハッタン距離は2点間の距離を計算する方法の一つであり、特に格子状の構造を持つ空間において利用されます。

この名前は、ニューヨークのマンハッタンの通りが格子状に配置されていることに由来しています。

マンハッタン距離は、2つの点間を直線ではなく、格子状のパスに沿って移動する際の距離を計算します。

例えば座標 x: 0, y: 0 から x: 2, y: 3 までの距離は x方向に2、y方向に3移動しているので、マンハッタン距離は5になります。

JavaScriptでマンハッタン距離を算出

JavaScriptの場合は「Math.abs(point1.x - point2.x) + Math.abs(point1.y - point2.y)」でマンハッタン距離を算出できます。

座標は x: -1, y: -2 のようにマイナスの場合もあるので、Math.absで数値の絶対値を返す必要があります。

マンハッタン距離を返す関数を作成する場合は、以下のようになります。

function manhattanDistance(point1, point2) {
    return Math.abs(point1.x - point2.x) + Math.abs(point1.y - point2.y)
}

const point1 = {x: 0, y: 0}
const point2 = {x: 2, y: 3}
const distance = manhattanDistance(point1, point2)
console.log(distance) // 5

ユークリッド距離と算出

ユークリッド距離は、2点間の直線距離を計算するためのものです。

式は以下のようになります。

function euclideanDistance(point1, point2) {
    return Math.sqrt((point2.x - point1.x) ** 2 + (point2.y - point1.y) ** 2)
}

const point1 = {x: 0, y: 0}
const point2 = {x: 3, y: 4}

const distance = euclideanDistance(point1, point2)
console.log(distance) // 5

マンハッタン距離とユークリッド距離はWebサイトに使用するJavaScriptだと、必要になることが結構あるので、覚えておいて損はないです。