我有正方形的宽度和最终区域的数量,以及该正方形应划分的数量。可以使用什么算法来查找每个区域的掩码?
强调了这个问题中的一些事实:
- 如果有宽度,那么就知道正方形中有多少个单元格
- 如果有细胞总数和最终区域的数量,那么就知道每个区域中有多少个细胞
但它能带来什么?
这里有几个例子:
Ширина - 4
Количество зон - 2
0123
0AAAA
1AAAA
2BBBB
3BBBB
Ответ: [
[[0, 0, 0, 0],
[0, 0, 0, 0],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[0, 0, 0, 0],
[0, 0, 0, 0]]
]
如果区域是这样的,那么这也是合适的,只是答案会有点不同:
0123
0AABB
1AABB
2AABB
3AABB
Ширина - 6
Количество зон - 9
012345
0AABBCC
1AABBCC
2DDEEFF
3DDEEFF
4GGHHII
5GGHHII
Ответ: [
[[1, 1, 0, 0, 0, 0],
[1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[[0, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
...
]
在第一种情况下,可以按顺序经历双循环,一旦收集到一定数量的细胞,就可以进入下一个区域。但是第二种情况该怎么办呢?在那里不可能执行此操作,因为只会获取第一行中的前 4 个单元格。
L
你必须分解正方形的边长C
和R
是列数和行数,w
是h
区域矩形的宽度和高度。在双循环中遍历时,坐标中的区域编号(如果需要,可以从中获取字母)计算如下:
整数除法(在 Sharpe 中,通常是整数变量的除法)
多亏了MBo,这样的服务才得以实现。
但最后一行
GetColumnsAndRowsAmounts
仍然有问题。