我有一组不同大小的正方形和矩形,想要使用PHP组合在一起,形成一个大的正方形/矩形。这些正方形通常是图像,我想将它们制作成蒙太奇 - 但有时它们只是数学对象。
是否有任何PHP算法可以实现这个功能?这种类型的问题叫什么?
更新:在进一步搜索后,我认为我想要的是称为装箱问题的东西。然而,对于某些类型的装箱问题(如图像),我还想添加一定量的随机性,以增加人类兴趣。
我有一组不同大小的正方形和矩形,想要使用PHP组合在一起,形成一个大的正方形/矩形。这些正方形通常是图像,我想将它们制作成蒙太奇 - 但有时它们只是数学对象。
是否有任何PHP算法可以实现这个功能?这种类型的问题叫什么?
更新:在进一步搜索后,我认为我想要的是称为装箱问题的东西。然而,对于某些类型的装箱问题(如图像),我还想添加一定量的随机性,以增加人类兴趣。
我在PHP中编写了一个一维装箱算法。你可以寻找最佳适配,首次适配等方案。但这不适用于二维问题,也许你应该考虑背包问题?
我认为你可以使用模拟退火算法。我曾经用它来填充矩形广告在矩形报纸页面上。正如你所说,你可以从随机解开始,然后慢慢地达到一个好的解决方案。请参见这里http://codetuner.blogspot.com/2010/03/simulated-annealing-approach-to.html。我曾经用它来解决分页问题。我认为你也可以将其用于你的需求。