我在这里看了一下,发现类似的问题,但没有解决方程。这就是我要做的事情。我需要能够确定一系列可能用于解决一组输入参数和结果的方程式。我将永远了解输入和结果。我需要找到一种方法来解决缺乏更好术语的解决方案。
例如:
输入参数:5,1,1,2
结果:8
我想输入这些数字和结果,并得到类似的结果:
FirstNumber(5)*(SecondNumber(1)+ ThirdNumber(1)) - FourthNumber(2)= 8
FirstNumber(5)* FourthNumber(2) - SecondNumber(1) - ThirdNumber(1)= 8
显然它可能很复杂,如果有更多数字可能有很多可能的解决方案。我的一般问题是围绕可行性。
答案 0 :(得分:3)
实际上要解决这个问题非常困难。
首先 - 您必须能够使用+-*/
和()
来解决任何等式。怎么做?您必须使用这些运算符创建树状结构,并能够计算结果。
完成此任务后,您可以开始生成可能发生的所有可能性。 Backtracking实际上非常有用,因为它会自动删除不会导致任何内容的路径,并且通过正确的实现,它会找到所有可能的解决方案。
答案 1 :(得分:0)
为了获得所有可能的线性方程的集合,我会尝试排列而不重复输入,除了结果(忽略可能的相同输入)和取自所有运算符的每个组合的排列,其中G是G的数量输入数字之间的间隙,以填补数字之间的间隙,然后尝试每个位置和大小多于一个小于N的“()”内的数字,其中N是不包括结果的输入数。 检查此链接中的答案,了解如何在java中获取排列 Generating all permutations of a given string