javabuilder11
javabuilder11
采纳率0%
2016-10-12 09:08

三维装箱算法问题请教

有160个弹簧,20个箱子,每个箱子可以装8个弹簧,每个箱子放两排。要将这160个弹簧放到箱子里。要求: 每个箱子第一排1—4号i弹簧高度差不超过1mm。第二排5—8高度差不超过1mm,1-8之间的高度差不超过2mm。怎么装法最合理?160个弹簧,如果有超出这个条件的,需要返修后,再放入,怎么能做到最少的返修呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_29594393 当作看不见 5年前

    桶排序,先求最大值最小值,时间复杂度n;得到mix max (max-mix)/8得到8个桶的范围,(如果每个桶范围超过2怎么处理,在这里,由于肯定可以装箱完成,那就不会出现,桶的间隔太大的问题)
    假设mix =2mm max=15mm 那第一个桶就是2-4,第一排2-3,第二排3-4,,最后一个桶13-15,13-14,14-15,可以推测出所有桶的范围,
    如果出现断层,mix 2 max =20,(还是注意一点,前提条件是一定能装箱完成.那么断层也可以相同的处理,就不在赘述),时间复杂度为2n,

    点赞 评论 复制链接分享
  • u013130920 Tealar 5年前

    先排序在装吧,假设每个弹簧长度为一个随机数,将1到160排序,然后八个一组挨个装箱。

    点赞 评论 复制链接分享

为你推荐