求解最佳分配的算法问题
描述是这样的:有个集合(n0...nx)x最多给到8,给出一个最大值X,X为整数不超过20,
尝试 L取值为(1~max(n0...nx)),以及(n0...nx)对应的比值(m0...mx)并且满足sum(m0...mx)值<=X,使得n0==(n0-(m0*L<=n0)),nx==(nx-(mx*L<=nx),经过多次L和m0的取值,使得n0=0,nx=0。
求尝试取L和(m0...mx)为何值时可得到最佳次数,即就讲尝试取值的次数越少越好,尽量让sum(m0...mx)=X ,以保证集合分配值为最多。所以我的解题时都是会考虑X为最大值。例如:
(200,400,500,850,740,420) X=6 L
第一次取值 (0, 1, 1, 2, 1, 1) 6 400
(200,0 ,100,50 ,340,20)
第二次取值 (2, 0, 1, 0, 3, 0) 6 100
(0, 0, 0, 50, 40, 20)
第三次取值 (0, 0, 0, 2, 2, 1) 5 20
(0, 0, 0, 10, 0, 0)
第四次取值 (0, 0, 0, 1, 0, 0) 1 10
(0, 0, 0, 0, 0, 0)
经过四次尝试后集合数据清零。
这个是不是最佳没求证,但思路是这样子的,求算法怎么解?
非常感谢楼主的福利! 谢谢楼主……辛苦啦!………………
页:
[1]