jtyoui.statistics.distance.ChebyshevDistance 源代码

#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
# @Time  : 2019/3/18 9:34
# @Author: Jtyoui@qq.com
from jtyoui import parameter_set_length

"""
切比雪夫距离(棋盘距离)
在数学中,切比雪夫距离或是L∞度量,是向量空间中的一种度量,
二个点之间的距离定义是其各坐标数值差绝对值的最大值。以数学的观点来看,切比雪夫距离是由一致范数(uniform norm)
所衍生的度量,也是超凸度量的一种。
国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。
国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。
"""


[文档]@parameter_set_length def chebyshev_distance(coordinate_p, coordinate_q): """传入的是两个可迭代对象,每一个是一个n位坐标,比如:p=(x1,x2,x3....xn),q=(y1,y2,y3....yn) :param coordinate_p: p坐标 :param coordinate_q: q坐标 :return: 切比雪夫距离(棋盘距离) """ coordinate = [] for x, y in zip(coordinate_p, coordinate_q): coordinate.append(abs(x - y)) return max(coordinate)
if __name__ == '__main__': c_d = chebyshev_distance((11, 2, 2, 3, 23, 2), (3, 3, 2, 3, 2, 3)) print(c_d)