text: #!/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)
  