17

我有一组不同大小的正方形和矩形,我想使用 PHP 将它们组合成一个大正方形/矩形。这些方块通常是我想制作成蒙太奇的图像——但有时它们只是数学对象。

是否有任何 PHP 算法,这种类型的东西叫什么?

更新:经过更多搜索,我认为我想要的是所谓的装箱问题。但是,我还想为某些类型的打包问题(如图像)添加一定量的随机化,以引起人们的兴趣。

4

3 回答 3

9

2D Bin 打包是 NP-hard 问题。然而,有近似算法。

看看这段代码(和解释)。它包含多种算法,并且有一个 GUI:

解决二维包装问题

于 2011-07-16T08:08:28.220 回答
0

我认为您可以使用模拟退火算法。我用它用矩形广告填充矩形报纸页面。正如您所说,您可以通过随机解决方案开始它,然后您可以慢慢找到一个好的解决方案。请参阅此处http://codetuner.blogspot.com/2010/03/simulated-annealing-approach-to.html。我用它来解决分页问题。我认为您也可以将它用于您的需求。

于 2011-07-22T16:11:40.323 回答
0

我在 php 中编写了一个一维装箱算法。您想寻找最合适的、最合适的等等。但这不是二维问题,也许你想寻找背包问题?

于 2011-07-15T19:49:05.830 回答