繁体   English   中英

可以放置在 X x Y 网格中的长度为 3 的行数

[英]Number of lines of length 3 that can be placed in a X by Y grid

给定一个长度为 X 高度为 Y 的网格,我如何找到可以放置在网格中的长度为 3 的行数? 考虑水平线、垂直线和对角线。

示例 3x3 网格 - 3 条水平线、3 条垂直线、2 条对角线 = 8 条可能的线。 3x4 网格 - 4 条水平线、6 条垂直线、4 条对角线 = 14 条可能的线。

假设XY都至少为 3。

在每一行中,对于长度为 3 的水平线(除了最右边的两列),有X - 2可能的左端点。 所以可能的水平线的总数是Y * (X - 2)

通过对称性,可能的垂直线的总数是X * (Y - 2)

根据它们的方向,有两种类型的对角线。 考虑从左上到右下方向的那些。 与上面的论点类似,对于任何长度为 3 的对角线的左上端点,有X - 2可能的列和Y - 2可能的行。 所以这样的对角线的总数是(X - 2) * (Y - 2)

通过对称性,其他类型对角线的总数相同。

所以长度为 3 的总行数是Y * (X - 2) + X * (Y - 2) + 2 * (X - 2) * (Y - 2) ,可以简化为:

(2 * X - 3) * (2 * Y - 3) - 1

正如预期的那样,这个公式确实与您的示例一致。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM