假设N x M网格。在此我需要随机布置尺寸从1x1到I X J网格单元的瓷砖。关键问题是找到一种方法,在相同的次数内使用每种不同的大小,并且相当随机地分布。
作为一个例子,想象一个10 x 20平方英尺的地板,你有1x1,1x2和2x2瓷砖的堆叠,你想要布局地板,你希望设计是随机的,并使用大约相同的数量每个瓷砖。
您也可以反过来考虑问题,将地板切割成这些尺寸的碎片。
我见过树图算法,但它们并不完全符合要求。如果你将碎片限制为1 x I,那么问题就是一维且容易。这是2D版本似乎更难。任何想法或指示都是有帮助的。
放宽(1)随机或(2)类似的需要确实使它更容易,但两者都很重要。我有一些想法,但没有任何感觉。
答案 0 :(得分:0)
一种替代解决方案是随机排序您的图块并使用空间索引来填充网格。这个想法是空间索引将网格细分为2维,以便您可以检查四边形。否则,您希望使用DFS来找到最佳解决方案。