Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 使用给定答案的特定值集获取数字方程_Math_Numbers_Mathematical Optimization - Fatal编程技术网

Math 使用给定答案的特定值集获取数字方程

Math 使用给定答案的特定值集获取数字方程,math,numbers,mathematical-optimization,Math,Numbers,Mathematical Optimization,我已经为人工智能任务做过了。需要找到解决方案的逻辑1.这是问题的解释 我有答案(任何数字,例如10)。并且有一些数字集(例如[1,2,3,4,5,6,8,9])。现在我必须使用(+、-、*、/)和数字来创建方程,以得到答案10 这是第一步(不是固定长度或重复数字的条件)。。对于这类问题,有很多解决方案 5+5=10(两步) 2*2=10(2步) 2*2+6=10(3步) 3*2+4=10(3步)…继续 在第二步(更难)(这之后的下一个作业)中,必须设置一些条件,如 -->必须在特定步骤中…或 -

我已经为人工智能任务做过了。需要找到解决方案的逻辑1.这是问题的解释

我有答案(任何数字,例如10)。并且有一些数字集(例如[1,2,3,4,5,6,8,9])。现在我必须使用(+、-、*、/)和数字来创建方程,以得到答案10

这是第一步(不是固定长度或重复数字的条件)。。对于这类问题,有很多解决方案

5+5=10(两步) 2*2=10(2步)

2*2+6=10(3步) 3*2+4=10(3步)…继续

在第二步(更难)(这之后的下一个作业)中,必须设置一些条件,如 -->必须在特定步骤中…或 -->一定不要重复两次(如果在这里的数组中重复两次,我们可以使用它两次) -->必须使用*两次

我不是人工智能方面的专家,但任何有用的链接也将受到欢迎
提前感谢

对于第一部分,一个相当简单的解决方案如下:假设你所有的数字都是有理数。然后继续对当前结果集执行允许的操作,直到达到目标。毫无疑问,有许多方法可以改进算法,但这应该让您开始

下面是第一部分的一个简单解决方案的类似Python的伪代码

def solve(数字、目标、二进制_运算符):
可获得的结果=集合(数量)
如果目标在可获得的结果中:
返回真值
尽管如此:
prev_len=len(可获得的结果)
对于可获得的结果:
对于可获得的结果中的b:
对于二进制_运算符中的op:
c=op(a,b)
如果c==目标:
返回真值
可获得的结果。插入(c)
如果prev_len==len(可获得的结果):
返回错误
请注意,现在还不清楚这是否会在每次输入时终止。你能提供这样一个输入的例子,或者证明它确实在所有输入上终止吗?我们如何改进它


至于第二部分,您还需要维护允许的条件集及其当前状态。如果没有那么多条件,并且它们遵循简单和类似的模式,那么您可能希望手动执行此操作,但是如果条件很多并且可能会发生更改,然后,您可能更希望针对每个结果的每个条件维护一组状态机。

这个问题似乎与主题无关,因为它与编程问题无关。也许更适合一个理论计算机科学交流网站。