求数学大神帮忙

  • i
    icestone
    中午吃饭的时候和同事说起了一道问题。
    一组自然数,分成若干组,并分别求取各组的总和。那么各组之间什么时候差最大。语言表达可能不清楚。举个例子。

    比如{1,2,3,4}这四个数,分为两组A,B,每次安排一个数安排到A或者B,但是每次放置新的一个数的时候都要放到当前总和最小的那一组。比如第一个数选择4,那么当前A和B的各自总和都为0,可以随便放置,假设放到A,那么如果第二个数是3的话,根据上一条原则,就只能放到B。按照上述条件进行尝试的话两组之间的最大差是3→A 1→B 2→B 4→A 按照这样的顺序放,A和B之间相差为4 请问这个有什么规律吗?如果换成3组4组,结论又是怎么样呢?iOS fly ~
  • w
    wsyx87930
    按你这个放置的原则,两组数的差就取决于你选择数的顺序啊
  • i
    icestone
    所以这个差值是什么情况最大呢?
    3124 和4321的话差值就是完全不一样。上面的那个3124是我自己试出来的顺序,现在想问问大家给定一组数,如何计算出最大差值。 iOS fly ~
  • r
    rihkddd
    两组要差最大显然是排序之后,前一半一组,后一半一组。多组你首先要定义什么是差最大。另外说一下:两组差最小比较难一点,求总和除以二,这就是每组要达到的目标值,这是一个背包问题,小规模可以搜索解决,稍大规模要用动态规划,再大规模就不好搞了,本质上是一个NPC问题。