具有多个值的公式

时间:2019-04-01 16:29:18

标签: python

您将获得以下公式:

formula(1,[d,g],h)
formula(2,[f,h],i)
formula(3,[a,d],f)     
formula(4,[b,c],a)

找到公式列表L,以找到给定c,b,d的f。

一些解释:
每个公式都有一个索引作为括号中的第一项。
方括号中的值表示您需要知道的值才能获得括号中的最后一项。

此特定问题的解决方案是:L = [4,3]
开头的值是:c,b,d
应用公式4(需要[b,c]并同时拥有它们)之后,您将得到:c,b,d,a(因为a是公式4的“输出”)
然后,对公式3重复相同的操作,并得到值f作为输出,即可解决问题。

让我画一个简单的图更好地解释这种情况:

-  /  |  c, b, d 

-  4  |  c, b, d, a

-  3  |  c, b, d, a, f

因此L = [4,3]

在右侧,您可以看到应用每个公式后知道的值,而在左侧,则有我们使用过的公式。

我正在尝试为python中的此类问题编写一个求解器,但这出来的任务相当艰巨,所以... StackOverflow我选择了您!

请不要与我联系以获取更多信息。

1 个答案:

答案 0 :(得分:1)

那是DAG!您的公式描述了依赖关系。例如,公式(3,[a,d],f)表示f取决于a&d。转换为a -> fd -> f。其他公式也是该图的一部分。

在图(b,c,d)中为您提供了一些已知的源节点。还有一个目标节点(f)。

您需要做的是从任何已知节点中进行图搜索,直到到达目标节点为止。您可以通过深度优先搜索,宽度优先搜索等来执行此操作。请参见:https://www.redblobgames.com/pathfinding/grids/graphs.html