【问题标题】:determine box size needed确定所需的盒子尺寸
【发布时间】:2016-08-05 14:05:26
【问题描述】:

我正在尝试计算一个大矩形包装较小矩形所需的大小。较小的矩形具有固定的已知大小,而大矩形具有固定的宽度。

在图片中,6个矩形可以容纳初始w和高度h1的大矩形。现在如果给更多的小矩形,我如何确定高度h2,h3,h4。

我最初采用了垃圾箱包装路线,但这并没有真正的帮助,因为它主要关注有多少较小的矩形可以容纳一个大的,但我需要多少尺寸(高度)才能容纳一定数量的较小的盒子。

我如何找到高度 h2、h3 和 h4。

w = 原始矩形的宽度 h1 = 原始矩形的高度

w 和 h1 给出 300、400 bh = 小矩形高度 bw = 小矩形宽度

bh 和 bw 对于所有矩形都是相同的,例如 40, 40

sb = 小盒子的数量

在这个例子中提供了三个不同的集合,对于每个集合,需要计算容纳小矩形所需的盒子高度

  • 对于第一个 sb 为 6 的集合,我需要找到 h2
  • 第二组 sb 为 7,我需要找到 h4
  • 对于第三组 sb 为 8,我需要找到 h3

【问题讨论】:

  • 我完全不明白。您可能不只是指h = bh * ceil(numberOfBoxes / floor(w / bw))?请澄清你的问题。什么是输入,你期望什么输出?
  • 我做了一些解释,看看编辑是否有帮助
  • 为什么第一行小框不计入sb?你如何区分h3h4,即为什么最后一个框不在前一行?
  • 我已经分割了图像,现在更清楚了

标签: math bin-packing


【解决方案1】:

我还是有点不清楚。但这里尝试回答您的问题。

一行中的框数为:

boxesInRow = floor(w / bw)

为了适应n 框,您需要以下行数:

rows = ceil(n / boxesInRow)

那么这个大盒子的高度就是:

height = rows * bh

现在是我不确定的部分。你说sb是盒子的数量。但是,对于第一张图像(h2),您说sb 应该是 6,但我数了 9 个框。显然,您忽略了第一行。如果真是这样的话,最后的公式是:

height = bh * (rows + 1)
       = bh * (ceil(sb / floor(w / bw)) + 1)

【讨论】:

  • sb第一个盒子是6,因为大矩形(容器)是黑色矩形,高度为h1,现在第一张图片的问题是3个小盒子在这种情况下添加到容器顶部的位置,所需的新高度是多少h2,明白了吗?
  • 不,不是。什么参数存储3?
猜你喜欢
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 2022-07-25
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多