Math 确定所需的盒子大小

Math 确定所需的盒子大小,math,bin-packing,Math,Bin Packing,我正在计算一个大矩形的大小,它需要用来装小矩形。小矩形有固定的已知大小,大矩形有固定的宽度 在图像中,6个矩形可以适合初始w和高度h1的大矩形。现在,如果给出更多的小矩形,我如何确定高度h2,h3,h4 我最初选择了装箱路线,但这并没有真正起到帮助作用,因为它主要关注的是有多少个较小的矩形可以容纳一个较大的矩形,但我需要多少尺寸(高度)才能容纳一定数量的较小的盒子 如何找到高度h2、h3和h4 w=原始矩形的宽度 h1=原始矩形的高度 w和h1的值为300400 bh=小矩形高度 bw=小矩

我正在计算一个大矩形的大小,它需要用来装小矩形。小矩形有固定的已知大小,大矩形有固定的宽度

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

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

如何找到高度h2、h3和h4

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

w和h1的值为300400 bh=小矩形高度 bw=小矩形宽度

bh和bw对于所有的矩形都是一样的,比如说40,40

sb=小盒子的数量

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

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

    • 我还是有点不清楚。但这里有一个尝试来回答你的问题

      适合一行的框数为:

      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)
      

      我不完全明白。你的意思可能不仅仅是
      h=bh*ceil(numberofbox/floor(w/bw))
      ?请澄清你的问题。输入是什么,输出是什么?我做了一些解释,看看编辑帮助为什么第一行小框不计入
      sb
      ?如何区分
      h3
      h4
      ,即为什么最后一个框不在前一行?我已经分割了图像,现在更清楚了是
      sb
      对于第一个框是6,因为大矩形(容器)是黑色矩形,具有高度
      h1
      ,现在第一张图片的问题是,如果在容器顶部添加3个小盒子,那么所需的新高度是多少。哪个参数存储3?