Study/Go Lang
[Go Lang] Euclidean Distance
Hoon's Blog
2019. 12. 18. 16:39
# Euclidean Distance?
두 점간의 거리를 계산할 때 주로 사용함.
a, b 두 점간의 유클리디언 거리는 다음과 같음.
더보기
수식 입력 참고사이트
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)))
}
# 결과