V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
0312birdzhang
V2EX  ›  奇思妙想

关于打包箱子引发的思考

  •  
  •   0312birdzhang · 238 天前 · 2298 次点击
    这是一个创建于 238 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求

    如何用更少的箱子打包更多的小箱子,或者同样多的大箱子打包更多的小箱子。注意,小箱子有一种或多种,长宽高不完全一致,或者至少有一个边的边长不同。大箱子个数和尺寸同小箱子情况。

    简单分析

    这里面涉及到各种排列组合,每个小箱子的长宽高摆放都是一个新的排列,而且要合理的放入大箱子中,更充分的利用大箱子的空间。

    理想中的实现

    有这么一个 app ,可以添加大箱子的长宽高,可以有多种大箱子。然后添加要装入的小箱子长宽高,可以有多种。 然后 app 生成一种最合理的摆放的示意图,从下到上以 3d 展示。如果大箱子数量不够,可以给出提示。

    箱子 尺寸(cm) 数量
    大箱子 1 50x40x45 2
    - - -
    小箱子 1 20x10x6 5
    小箱子 2 30x15x10 2
    8 条回复    2024-05-06 11:59:00 +08:00
    beimenjun
        1
    beimenjun  
       238 天前
    作为一个 App 开发者和一个搬家喜欢装箱子的来说一下。

    你这个想法感觉是个很典型的算法题目啊。

    但不管是商业上还是日常生活里,一般涉及到:在更大的箱子里装小箱子。感觉最佳实践都是优先使用统一的固定尺寸的小箱子,而且对这些箱子的置放方向与堆叠载荷都是有明确要求的。这种时候都不太需要用到 App 。

    唯一能想到用途的就是快递企业了。
    lefthand2006
        2
    lefthand2006  
       238 天前 via iPhone
    可以做成一批货,一个集装箱,计算如何打包能装下最多货物
    coderluan
        3
    coderluan  
       238 天前   ❤️ 1
    这个叫集装箱问题,一般来说大学算法课最开始就是拿这个问题举例,用贪心算法先放大的后放小的。
    0312birdzhang
        4
    0312birdzhang  
    OP
       238 天前
    @beimenjun 是的,一般都是标准的箱子,和产品配套的。
    kuanat
        5
    kuanat  
       238 天前 via Android   ❤️ 1
    可以参考这个装箱问题 wiki 上面 Bin_packing_problem

    放到现实世界里,搬家这个场景一般都是一个固定大箱子,往里面放各种小箱子的问题。可能还会有更多约束,比如重量,一箱子书换谁都搬不动。所以人靠直觉一般能很快找到一个可行但不一定最优的方案,换作程序里可能就是经验或者启发式算法。

    另外大箱子也是可以变形的,比如 50cm 长 30cm 宽,切割一下胶带一封就可以变成 40x40 或者 60x20 来用。
    0312birdzhang
        6
    0312birdzhang  
    OP
       238 天前
    @coderluan @kuanat 感谢
    even77
        7
    even77  
       238 天前
    装箱问题,大学生数学建模比赛可能会遇到,之前本科的时候遇到过。但是到比赛的一半才意识到原题是这个问题😂,寄了。
    forty
        8
    forty  
       236 天前
    @kuanat 说的正是我想说的。

    现实搬家场景来说,一般都是同样大小的纸箱,以及一些没放箱子里的东西,一股脑堆到货拉拉的货车里。
    一般按照同类就装一起,宁可浪费点空间,不会为了稍微节省箱子而乱塞。先大后小一般没问题。

    这个算法问题是很经典的,我在写 2D 自动布局的时候用过。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1418 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 17:26 · PVG 01:26 · LAX 09:26 · JFK 12:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.