Study/Go Lang

[Go Lang] Euclidean Distance

Hoon's Blog 2019. 12. 18. 16:39

# Euclidean Distance?

두 점간의 거리를 계산할 때 주로 사용함.

a, b 두 점간의 유클리디언 거리는 다음과 같음.

 

Euclidean Distance

더보기

수식 입력 참고사이트

http://mathurl.com/

 

mathURL

 

mathurl.com

입력 : d(a,b) = \|a-b\| = \sqrt{(a-b)^T(a-b)}= \sqrt{\sum_j(a_j - b_j)^2}

 

# Exam

Case 1. P(1, 4), Q(3, 1)

PQ = SQRT( (1-3)^2 + (4-1)^2 ) = SQRT(4+9) = 3.605551

 

Case 2. P(2, 2), Q(3, 1)

PQ = SQRT( (2-3)^2 + (2-1)^2 ) = SQRT(1+1) = 1.414214

 

Case1보다 Case2가 유사도(거리)가 더 높음.

 

# Go Lang

// Euclidean project main.go

package main

import (

    "fmt"

    "math"

)

type points struct {

    point_x float64

    point_y float64

}

func main() {

    var arr []points

    arr = append(arr, points{point_x: 1, point_y: 4})

    arr = append(arr, points{point_x: 3, point_y: 1})

    arr = append(arr, points{point_x: 2, point_y: 2})

    fmt.Println("Euclidean Distance")

    fmt.Print("[", arr[0].point_x, ",", arr[0].point_y, "] : [", arr[1].point_x, ",", arr[1].point_y, "] = ")

    fmt.Println(math.Sqrt(math.Pow(arr[0].point_x-arr[1].point_x, 2) + math.Pow(arr[0].point_y-arr[1].point_y, 2)))

    fmt.Print("[", arr[1].point_x, ",", arr[1].point_y, "] : [", arr[2].point_x, ",", arr[2].point_y, "] = ")

    fmt.Println(math.Sqrt(math.Pow(arr[1].point_x-arr[2].point_x, 2) + math.Pow(arr[1].point_y-arr[2].point_y, 2)))

}

 

# 결과