【发布时间】:2015-04-14 14:16:22
【问题描述】:
我有一个圆圈,我需要用矩形填充。一个堆放在另一个上。矩形仅提供特定尺寸。我们还给出了必须放置的矩形数量。我需要得到一组覆盖圆的大部分区域的矩形长度。例如,如果圆的直径为 100,则可以放置长度为 [100,95,90,85,...15,10,5] 的矩形。我尝试过通过解析所有可能的组合使用蛮力方法。当数字很小时,它会产生很好的结果。我尝试的另一种算法是限制每个矩形占据的长度范围。就像第一个矩形的长度为 95 或90 得到最好的结果。但是当要放置的矩形数量非常多时,即使这种方法也很麻烦。这是矩形的排列方式
如果第一个矩形的长度为l,圆的直径为d,则其厚度为sqrt(d2-l2)。如果第二个矩形的长度为k,则其厚度为sqrt(d2-k2)-sqrt(d2 -l2)。
有什么算法可以让我去制定结果。
【问题讨论】:
-
这个问题我一点都不清楚。您的示例似乎表明矩形的一部分允许在圆之外。是这样吗?矩形高度是否以某种方式受到限制?在某些时候,您提到了固定数量的矩形,但我在您的示例中没有看到?
-
现在允许矩形在我绘制它们时向外延伸,它们只是变大了一点。每个矩形的厚度取决于它的长度,正如我在底部解释的那样。矩形的数量,圆的直径由用户给出,因此您可以认为它是固定的算法,即:n,矩形的长度仅以 5 为步长
-
有人建议我使用离散分析。但是我对如何解决这个问题几乎没有任何线索
-
只是为了清楚。 1.“d2”是d^2(d平方)吗? ............. 2. 什么是“第一个”矩形?长度为 100 的矩形的高度(厚度)= sqrt(d^2-100^2) ?第二个长度为 95 的将有 sqrt(d2-95^2)-sqrt(d2-100^2) ?
-
我已经发布了一个答案(可能对你没有帮助),但我认为这个问题在这里是错误的。最好在math.stackexchange.com 询问