大方块被小方块遍历事先声明,不要被问题描述吓住.我的具体问题是这样的:一个大方块M*N大小,用一个小方块m*n进行遍历,

大方块被小方块遍历
事先声明,不要被问题描述吓住.
我的具体问题是这样的:
一个大方块M*N大小,
用一个小方块m*n进行遍历,大小是m=M/3,n=N/3,
x方向的步长step_x是M/9
y方向的步长step_y是N/9
我一个坐标(m0,n0)
如何知道在哪几个小块里?小块有重叠,所以可能在好几个小块里,怎么算?
天使ww 1年前 已收到1个回答 举报

表深情钿合 幼苗

共回答了20个问题采纳率:85% 举报

你可以做两个循环,分别是x以步长step_x从0开始递加,y以步长step_y从0开始递加,在每次循环中做一次判断,你的坐标(m0,n0)是否在(x,y)到(x+m,y+n)之间,如果是就提取出来,循环结束后,你提取出来的数据就是你要求的小块

1年前 追问

6

天使ww 举报

你说的这个我知道
但是时间太慢
这样的话需要每次循环体中都计算是否在(x,y)到(x+m,y+n)之间
我的意思是 如果可以通过(m0,n0)直接计算在哪个块中就不用穷极计算了

举报 表深情钿合

那你从(m0,n0)为起点的小块开始,向两个方向遍历,指导找不到包含(m0,n0)的小块,这样会减少很多时间。有个规律,包含(m0,n0)的小块基本都是连续的一块区域。

天使ww 举报

我已经把代码写出来了,通过步长判断在第几个框内,一共可能最多有三个重叠的框,最少一个没有。
还是谢谢你。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 1.124 s. - webmaster@yulucn.com