每日一算法:欧氏距离
2021-04-27 本文已影响0人
lio_zero
在数学中,欧几里得距离(别称:欧氏距离)或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量。
计算任意数量维度中两点之间的距离。
-
使用
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
此示例来自 30 seconds of code 的 euclideanDistance