【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 输出计算得到的曼哈顿距离。
注意事项
- 在实际编程中,确保输入的数据在有效范围内,以避免潜在的越界或错误计算。
- 曼哈顿距离的计算相对简单,但它在路径规划、图像处理等领域有着广泛的应用。
热门推荐
预计收益率的计算方法及其对投资决策的影响
AI创业浪潮:破局与逐梦之路!
汆水是什么: 汆水到底滚水还是冷水下材料?别再傻傻分不清了
4个诀窍教你苹果手机怎么看wifi密码,赶紧学起来吧
会计分录编制技巧:轻松搞定5大业务类型
2025年中国房地产市场趋势分析与数据解读
1条公式实现多行多列与整列数据秒转换,效率狂飙!
带你窥探古今中外人类喝尿小史
新手小白也能学会的牙线使用技巧:包教包会!
Loft是什么意思?详解loft空间的特点与魅力
提升患者体验 | 医院应如何运用候补挂号机制提高号源利用率?
如何选择合适的滤波器设计技术指标?
一口价降到11万多还卖不动,是什么“杀死”了现代索纳塔?
中国水泥工业技术发展历程:从落后到全球领先
规范伦理学视角下的动物保护
60年一遇的清明节,哪天上坟最合适?老祖宗3000年前就说明白了
室性早搏常用药物有哪些
清明节前反弹行情可期!三大积极信号浮现,布局窗口就在当下!
拔罐后洗澡的注意事项
月底存钱的最佳公式:50-30-20规则详解
来到高原,血压为什么升高了?
保质期内食品发霉是否赔偿
矩阵的逆运算法则
为什么90后买房,只买老小区顶楼?内行人士说出真相,太现实了
自行车骑行活动如何良性发展?业内人士有话说
中国男排夺冠:3-1拿下欧洲劲旅,拿到世联赛、世锦赛资格
守护乡村孩子的排球梦
“碗中天地宽,面里扭乾坤” 面条文化席卷全球
揭秘FTP网站劫持,网络安全的新威胁
补充清单如何进行合理设置?这种设置方法存在哪些挑战?