我的父亲目前正在他的新房子里工作,他现在可以上地砖了。他问我所谓的“计算机科学”问题,但我想它更多是数学和算法学。
问题如下:让我们想象一个给定的工作空间(例如10x5米)和不同大小的图块:
围绕这3种类型的瓷砖构建了一种建议的图案,这些瓷砖形成了一种“ L”形,我想在美学上尽可能地重复这种图案。
我的问题是:如何优化贴砖的位置以适合最大数量的完整贴砖,而又不会在边缘切割太多?是否存在针对此类问题的软件或给定的数据结构?
我没有给定的语言(即使欢迎使用Python),但我的目标是能够绘制放置所有瓷砖的房间,以适应未切割瓷砖的最大数量!希望我说清楚
很抱歉,如果重复,但我似乎找不到合适的关键字
答案 0 :(得分:1)
我们无法为您提供严格的解决方案,因为您尚未完全指定问题所在。您尚未在保持所需的“ L”形和切割瓷砖之间进行权衡评估。您还没有指定“ L”;有几种可能性。例如:
+-----+
| 3x5 |
| +---+
| |
| 5x5 5x3|
+---------+
+---+
|5x3|
| +-----+
| |
| 5x5 5x3|
+---------+
我建议您查找tesselations的字段;最全面的参考文献(IMHO)来自Darrah Chavey。
最简单的开始就是简单地将“ l”形状“勺”成其自然对角线:
+-----+ ... and upward to the wall
| |
| +---+
+-----+ |
| 3x5 | |
| +---+-----+
| |
| 5x5 5x3|
+---------+
另一个是,您可以形成两个“ L”形,旋转一个半圈,然后将它们连接成具有两个凹角的六边形。此六角形将类似地平铺平面:
+---------+
| |
| |
+-+---+ |
| 3x5 | |
| +---+-+
| |
| 5x5 5x3|
+---------+
对于这么大的空间,您可能需要选择一种重复的模式,该模式对于您的特定空间尺寸非常适用,然后选择