【问题标题】:2D Dimensions, quantities and packing algorithms?二维尺寸、数量和包装算法?
【发布时间】:2016-06-06 16:50:03
【问题描述】:

一直在网上查找并更改我的问题措辞以找到类似的内容,但不完全确定如何在 Java 中正确解决此问题。我有一个网络应用程序,它采用 (A x B) 的 2D 维度,然后我转到我的数据库并检索维度大于或等于 (A x B) 的所有项目。然后,我找到成本最高的项目并将其连同总金额乘以要求的数量返回。

但是现在,例如,如果我有一个 1000 x 1000 的便宜商品,但我要求 10 个 100 x 100。1000 x 1000 将被退回,因为它是最好的成本,但我将总数设置为 10 1000 x 1000 这太多了。

不管它是什么,如何最好地获取那个大尺寸并尝试找出可以从中分割出多少请求的尺寸并将总 x 数量降低到更智能的数量?

希望这是有道理的。

到目前为止,我已经尝试过

private Double FindSmartTotal(double cheapestTotal, String sizeDB, String desc, Integer quantity) { 
    desc = LookForSizes(desc);
    if(desc!=null){
        LookForSizesOfDB(sizeDB);
        LookForSizesOfDescription(desc);
        Dimension d1 = new Dimension(dbitemSizeA, dbitemSizeB);
        Dimension d2 = new Dimension(homeviewitemSizeA, homeviewitemSizeB);
        if(d1.getWidth() > d2.getWidth() && d1.getHeight( )> d2.getHeight()){
            double dividedWidth = d1.getWidth()/d2.getWidth();
            double dividedHeight = d1.getHeight()/d2.getHeight();
            double roundedWidth = round(dividedWidth,1, BigDecimal.ROUND_HALF_UP);
            double roundedHeight = round(dividedHeight,1, BigDecimal.ROUND_HALF_UP);
            System.out.println("here");
        }
    }
    return null;
}

但我不知道接下来我会做什么,或者是否有更好的方法来处理它并将上面的代码废弃为新的。

【问题讨论】:

    标签: java database algorithm size dimensions


    【解决方案1】:

    想出了这个。更多基于数学。

    将两个维度相乘得到每个维度的面积。

    然后是 for 循环,每个循环从较大的区域中减去较小的区域并增加一个计数器。这样做直到减法> 0。这将提供比从更大区域切割的数量。

    【讨论】:

      猜你喜欢
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      相关资源
      最近更新 更多