我正试图为这类问题找到最佳解决方案。
我想要一个可以把它变成这样的算法:
然而,这在技术上是一个3D问题,并且在一些特殊情况下不需要所有正方形(意味着我不总是需要4个正方形来形成更大的正方形,或者8个立方体以形成更大的正方形)。
以上将始终适用于3D(如果找到8个立方体,则制作更大的2x2立方体)。隐藏面部时会发生特殊情况,如下所示:
(隐藏区域没有立方体)
这里有几点需要注意:
更糟糕的是,还有另一个限制:立方体大小范围从1到64,并且必须是2的幂(即仅1,2,4,8,16,32和64)
我只是在寻找伪代码或外行术语的解释。我将通过代码实现这个,但我想首先使用逻辑来解决这个问题。
注意:像这样的问题可以有很多解决方案。我希望有一个最佳的解决方案,但我真的只是想尽可能减少我拥有的立方体的数量。任何有用的东西都会受到赞赏(就像一个已经做过类似事情的已知算法)。