先算出Set的面积x*y,在算出Unit的面积a*b,然后用Set div Unit=数量
接着就可以排放了

解决方案 »

  1.   

    没有如此简单,应该使用round(a/x) * round(b/y)。ROUND函数根据你选定的数据库可能有区别,意思是取整。
      

  2.   

    不对,你的情况不应该如此简单。肯定是很多个Unit,他们的x,y均不同,你可以先从最大面积的开始排列,然后将剩下的面积分为3个分重复计算,将其计算简化。总而言之,从大到小不断分割。
      

  3.   

    这个算法应该是取b/y和a/x整除后值的最小值就是了.
      

  4.   

    海晴谢谢大家的关注,补充一下:这是一个在制造业普遍存在的工程工序和算法问题。
    Unit 的 x 和 y ,Set 的大小 a,b 可由用户实时输入。
    (1)可排放多少个?
    (2)如何排?(由程序完成)。
      

  5.   

    海晴谢谢大家的关注,是实上meijg和pjy的方法都不行,如Unit=5*5,Set=9*9呢?而pjy没有把不同的排法考虑进去,得不到最优解。但也无Wingsun认为的那么复杂,Set 中的所有 Unit 大小一致,Unit 排法无特殊要求,横竖皆可,但要最多。