Skip to content

Latest commit

 

History

History
26 lines (17 loc) · 1.35 KB

每日一算法:欧氏距离.md

File metadata and controls

26 lines (17 loc) · 1.35 KB

每日一算法:欧氏距离

在数学中,欧几里得距离(别称:欧氏距离)或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量

计算任意数量维度中两点之间的距离。

  • 使用 Object.keys()Array.prototype.map() 将每个坐标映射到两点之间的差。
  • 使用 Math.hypot() 计算出两点之间的欧氏距离。
const euclideanDistance = (a, b) =>
  Math.hypot(...Object.keys(a).map((k) => b[k] - a[k]))

euclideanDistance([1, 1], [2, 3]) // ~2.2361
euclideanDistance([1, 1, 1], [2, 3, 2]) // ~2.4495

const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0)
distance(1, 1, 2, 3) // ~2.2361

此示例来自 30 seconds of code 的 euclideanDistance

更多资料