矩形的对角线经过的小方格数量

本文探讨了在给定矩形网格中,对角线穿过的小方格数量的计算公式。通过数学推导,得出公式m+n-(m,n),其中m和n是矩形的长和宽,(m,n)是最大公约数。适用于解决数学建模问题中的最短路径计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天数学建模校内选拔赛的题目中,有一问是让求出最短路径以及经过的方格数,而最短路径是很多段折线,需要计算每段折线经过的方格数再加起来。

本来打算直接在程序里加几行代码计算的,后来发现可以直接推导出结论:

对于一个长度为mmm,宽度为nnn的矩形,均分成m∗nm*nmn个小方格,则对角线经过的小方格数量为m+n−(m,n)m+n-(m,n)m+n(m,n),其中(m,n)(m,n)(m,n)mmmnnn的最大公约数。

在这里插入图片描述

证明:

①先考虑mmmnnn互质的情况,即(m,n)=1(m,n)=1(m,n)=1时,由于对角线的斜率为k=nmk=\frac{n}{m}k=mn为既约分数,显然对角线除了两个端点外不会经过内部格点。

而对角线与m+1m+1m+1条竖直线有m+1m+1m+1个交点,与n+1n+1n+1条水平线有n+1n+1n+1个交点,由于对角线的两个端点被重复计算,所以对角线与所以格线共有m+1+n+1−2=m+nm+1+n+1-2=m+nm+1+n+12=m+n个交点。
在这里插入图片描述
而这m+nm+nm+n个交点将对角线分为m+n−1m+n-1m+n1段,每一小段都与包含它的小方格一一对应,所以对角线共经过了m+n−1m+n-1m+n1个小方格。

②再考虑mmmnnn不互质的情况,即(m,n)=d>1(m,n)=d>1(m,n)=d>1时,由于对角线的斜率为k=nm=n/dm/dk=\frac{n}{m}=\frac{n/d}{m/d}k=mn=m/dn/d,所以对角线一共经过了ddd个长为md\frac{m}{d}dm,宽为nd\frac{n}{d}dn的小矩形。取长为md\frac{m}{d}dm,宽为nd\frac{n}{d}dn的小矩形作为研究对象,每一个小矩形都是长宽互质的。使用①中的结论,对角线在每个小矩形中经过的小方格数为md+nd−1\frac{m}{d}+\frac{n}{d}-1dm+dn1,所以一共经过了d∗(md+nd−1)=m+n−dd*(\frac{m}{d}+\frac{n}{d}-1)=m+n-dd(dm+dn1)=m+nd个小方格。

综合①②,对于一个长度为mmm,宽度为nnn的矩形,均分成m∗nm*nmn个小方格,则对角线经过的小方格数量为m+n−(m,n)m+n-(m,n)m+n(m,n),其中(m,n)(m,n)(m,n)mmmnnn的最大公约数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值