![](/img/trans.png)
[英]Can I move objects in a JFrame(JPanel) along lines other than y=0, x=0, y=x and y=-x?
[英]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 条可能的线。
假设X
和Y
都至少为 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.