0

我正在研究空间堆叠问题......目前我正在尝试以 2D 解决,但最终将不得不在 3D 中完成这项工作。

我将空间划分为围绕中心块的 nxn 个正方形,因此 n 总是奇数......我试图找到任何尺寸小于 nxn 的矩形(例如 1x1、1x2、2x2 等)的位置数量放置在中间正方形不可用的地方。

到目前为止,我有这个..

total number of rectangles = ((n^2 + n)^2 ) / 4

..还有正方形的总数= (n (n+1) (2n+1)) / 6

但是,我一直在制定一个公式来找出其中有多少是不可能的,因为中间的广场会被占用。

例如:

[] [] []

[] [X] []

[] [] []

3 x 3 板...有 8 个可能的位置用于存储东西,因为中间正方形正在使用中。我可以使用 1x1 形状、1x2 形状、2x1、3x1 等...

公式给我的矩形数量为: (9+3)^2 / 4 = 144/4 = 36 个堆叠位置 但是由于中间的正方形是不可占用的,这些都不能实现。

手动我可以看到这些是不可能的选择:

1x1 形状 = 1 个不可能(中间正方形) 2x1 形状 = 4 个不可能(任何使用中间正方形的东西) 3x1 = 2 个不可能 2x2 = 4 个不可能等等 不可能的组合总数 = 16

因此,我所追求的解决方案是 3x3 板上 36-16 = 20 个可能的矩形堆叠位置。

我已经在 C# 中对此进行了编码,以通过反复试验来解决它,但我真的很喜欢一个公式,因为我想解决大量的 n 值,并最终制作这个 3D。

谁能指出这些空间/镶嵌问题的任何公式?也非常欢迎任何关于如何将整个矩形公式转换为 3D 的想法!

谢谢!

4

1 回答 1

0

好的..所以我现在有一个答案是.. 不可能的情况由以下定义:

n^4 其中 n 是仅使用奇数网格的网格大小的顺序

2^4 = 16(网格为 3 x 3) 3^4= 81(网格为 5 x 5) 4^4 = 256(网格为 7 x 7)等

于 2010-03-26T00:56:10.503 回答