找到确切或最接近的解决方

时间:2014-08-22 07:20:46

标签: c++ algorithm

如何编写一个程序来计算由给定数字组成的数学表达式,该程序还会计算出给定的结果?如果不存在计算结果的精确结果,则计算最接近的结果。 例: 你得到一个随机结果:520,你得到6个随机整数:2,4,1,6,15,44。使用操作数+, - ,*,/和6个随机整数,找到给定结果520或最接近的数字到520。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是一个NP难题。你应该强迫所有的可能性来提出解决方案。如果您想减少时间,可以尝试找到一种启发式方法来更接近可能的解决方案(并减少解决的时间)。但是,它可能不像开发蛮力方法那么容易。

输入数量很大时需要很长时间。

如果你想更进一步,这里有关键字:np,np-complete,np-hard,复杂性,启发式