每日一算法:欧氏距离

作者: lio_zero | 来源:发表于2021-04-27 16:26 被阅读0次

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

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

    • 使用 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

    相关文章

      网友评论

        本文标题:每日一算法:欧氏距离

        本文链接:https://www.haomeiwen.com/subject/yaqprltx.html