【C++】二维曼哈顿距离(Manhattan)
创作时间:
作者:
@小白创作中心
【C++】二维曼哈顿距离(Manhattan)
引用
CSDN
1.
https://m.blog.csdn.net/Yinrtyu_/article/details/145971326
C++中曼哈顿距离的用法、图片和代码示例详细介绍如下:
二维曼哈顿距离的用法
曼哈顿距离,又称为城市街区距离,用于计算两个点在标准坐标系上的绝对轴距总和。其公式为:
二维曼哈顿距离=∣x1−x2∣+∣y1−y2∣
曼哈顿距离常用于网格状布局的路径计算、图像处理等领域。
图片示例
描述一个常见的曼哈顿距离应用场景:
想象一个城市的街道布局,街道呈网格状,你只能沿着水平或垂直的街道行走。从一点A到另一点B的最短路径长度,就是这两点之间的曼哈顿距离。
在想象一下棋盘上的格子:
曼哈顿距离,也正是这个原理,不能像 绿线(/)一样,横穿建筑,而是需要和其它三条线一样, 穿过大街小巷。
代码示例
以下是一个使用C++计算两个点之间曼哈顿距离的代码示例:
#include <iostream>
#include <cmath> // abs()
int main() {
int x1, y1, x2, y2;
std::cout << "请输入两个点的坐标 (x1, y1) 和 (x2, y2): ";
std::cin >> x1 >> y1 >> x2 >> y2;
int manhattanDistance = std::abs(x1 - x2) + std::abs(y1 - y2);
std::cout << "两点之间的曼哈顿距离是: " << manhattanDistance << std::endl;
return 0;
}
详细说明
- 输入部分:
- 程序首先提示用户输入两个点的坐标 (x1, y1) 和 (x2, y2)。
- 使用 std::cin 从标准输入读取这四个整数。
- 计算部分:
- 使用 std::abs() 函数计算两个点之间横坐标和纵坐标的差的绝对值。
- 将这两个绝对值相加,得到曼哈顿距离。
- 输出部分:
- 使用 std::cout 输出计算得到的曼哈顿距离。
注意事项
- 在实际编程中,确保输入的数据在有效范围内,以避免潜在的越界或错误计算。
- 曼哈顿距离的计算相对简单,但它在路径规划、图像处理等领域有着广泛的应用。
热门推荐
零失败马蹄糕配方!Q弹爽口,比茶楼卖的还好吃!
崇祯末年时李自成军队战斗力十分强大,清军入关后仍予其重大杀伤
大数据与云计算的发展前景
股市直播三连板(3连板股票)(股市三联板是什么意思)
南京大屠杀:人类历史上最严重的暴行之一
血管外科中的抗凝药物应用
大豆肥料发酵最简单方法
北京301医院干细胞治疗骨关节炎收费标准曝光,患者需知
11分50秒,不一样的龙门石窟“打开方式”!
瑶柱的功效与作用
虚拟机不支持Vulkan怎么办?四种解决方案帮你轻松应对
“帕友”的午休时光:最佳时间与时长探索
快速起身后感到头晕、眩晕并缓解困难是何原因
戴了牙套后,这些食物可以吃,这些食物要少吃
王羲之、怀素已就位,《高逸图》展卷,上博书画馆即将焕新回归
药价“螺旋下降”,药店生存战打响
油脂抗氧化剂的作用机理,你了解多少呢?
油脂储存的合适环境是怎样的?这种环境对油脂质量有什么影响?
ESFJ性格优缺点:ESFJ性格特点全解析
天女花的花语:勤劳、善良
成都出发探秘云南西双版纳:7日深度游攻略及行程规划
外墙保温一体板岩棉容重要求规范
大年初一逛庙会,东岳庙、北顶娘娘庙有这样的历史文化
守护视界 远离糖网 重庆普瑞眼科分享糖尿病患者的视力保健指南
蒿子粑粑:传统美食的制作与文化
周朝,辉煌背后的文化密码它对中国的影响有多深?!
周朝的历史地位与战国时期的归属
每天吃几个鸡蛋有益于心血管健康?国内外研究吵起来了……
氯化铵化学式及性质应用详解
玉璋:穿越千年的文化符号