
曼哈顿距离计算公式:d(i,j)=|xi-xj|+|yi-yj|。
曼哈顿距离是由十九世纪的赫尔曼·闵可夫斯基所创词汇,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。
曼哈顿距离不是距离不变量,当坐标轴变动时,点间的距离就会不同。曼哈顿距离示意图在早期的计算机图形学中,屏幕是由像素构成,是整数,点的坐标也一般是整数,原因是浮点运算很昂贵,很慢而且有误差。
如果直接使用AB的欧氏距离,则必须要进行浮点运算,如果使用AC和CB,则只要计算加减法即可,这就大大提高了运算速度,而且不管累计运算多少次,都不会有误差。
曼哈顿距离是两点在南北方向上的距离加上在东西方向上的距离,主要用来计算两个点在标准坐标系上的绝对轴距总和。计算公式是d(i,j)=|xi-xj|+|yi-yj|。曼哈顿距离具有非负性、同一性、对称性、三角不等式等数学性质。
要注意的是,曼哈顿距离依赖坐标系统的转度,而非系统在坐标轴上的平移或映射。
def My_abs(num):
if num <0:
num *= -1
return num
print(abs(-5))
x1,y1=eval(input("输入A点坐标,以逗号分隔:"))
x2,y2=eval(input("输入B点坐标,以逗号分隔:"))
# 计算曼哈顿距离的函数
def getManhattanDistance(x1, y1, x2, y2):
return My_abs(x1 - x2) + My_abs(y1 - y2)
# 调用并输出计算的曼哈顿距离
print(getManhattanDistance(x1, y1, x2, y2))
abs在Python中有了,然后我就命名成了My_abs。
备注也都打好了。
折柳成荫写的是C,soulofbug写的是python
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)