************拆数 [算法]************
耙子 2006-01-13 04:10:29 有一个数 7434609.84
可能是下列数字中某几个的和(下面是23个),现在要找出来这几个数(可能无解)。
785397.24
119895.08
169248.51
499034.71
119895.08
136191.34
67926.15
1591094.15
54577.09
100303.76
99320.54
200607.77
123298.81
239070.53
203183.91
203183.91
556250.16
645490.82
373588.93
399248.6
386732.04
455674.26
1404253.61
8933467
请大家给一个好的算法。我目前用的就是递归,甚至都看过了汇编代码,感觉除非从算法上优化否则没什么可能突破了。
我的机器是 Pentium 1.6G/512M/ winxp sp2
上面这组数我的程序已经算了50分钟了,仍没有结果,还在算……。
为了方便大家调试我给一组小的范例(有解的)
和是 2652883.34
数列(14个)
794563.61
386732.04
399248.60
416949.20
360949.84
165742.39
373588.93
645490.82
556250.16
203183.91
203183.91
1404253.61
492528.82
422149.48
455674.26
目前我的成绩是 14个数有解 0.02s,无解时9.2s (把第一个数随便改一下就无解了)
这是我实际工作中遇到的一个问题,请大家帮忙。