现有销售数据N条,单价*数量如下形式
   15*12.2
   11*13.4
   13*13
   ....   
  现将每项相加后的总金额减去一个整数(由客户制定),然后在保持每项的销售数量不变的基础上,程序自动调整单价,使得调整后的数量*新单价的总金额等于新的总金额!要求单价调整的幅度越小越好,急求相关算法!在线等待,一有答案,立即揭帖!

解决方案 »

  1.   

    问题看得不是很明白。
    不过我想应可以
     1. 求出N条数据分别占旧总金额的百分比,保存
     2. 将保存的百分比排序
     3. 从大的百分比开始增减单价
     4. 记录两者的差额
     5. 如果差额完成,则退出,否则继续 step.3,4,5至於每次递减多少,就看实际需要了,一般可以考虑 = (总金额/N) * 相应百分比
      

  2.   

    举个例子,原来
    单价    数量
    100     10
    50      15
    10      20
    总金额为1950,减去一个给定值,假定为150后,为1800
    设都调整x,1950 * (1-x) = 1800       x=7.7%
    按我的说法结果为
    单价     数量
    92.3     10
    46.15    15
    9.23     20自己也觉得别扭,如果优化一下,就应该让金额最大的项幅度偏大一些,可大到多少泥?
    ????????????????????????????
    请楼主给出针对这个例子的幅度最小的调整,让偶看看先...
      

  3.   

    按 killlaoli(菜鸟) 的例子,在结果
    -------------
    单价     数量
    92.3     10
    46.15    15
    9.23     20
    --------------
    的基础上,将数量多的项目的单价取整,余出来的数金额加到,数量少的项上
    即为
    -------------
    93       10
    46       15
    9        20
    -------------