我正在尝试编写一个函数solve e k expr
,其中e
是构成线性系统一部分的一组线性方程,k
是{{1 }}。如果可能,该函数应仅使用e
中存在的变量来求解expr
。
目的是解决某些网络流量问题。例如,给定this network,我们称其为电路并应用基尔霍夫电流定律(流入节点的电流之和等于流出电流)。在这种情况下,k
是
e
假设我们可以在[ 'x1 - x2 + x5 = 0'
, 'x2 - x3 - x4 - x5 = 0' ]
那么一般情况将是
k = [x2, x5]
solve e k 'x2' => Just 'x2'
稍微复杂一点
solve e k 'x5' => Just 'x5'
solve e k 'x1' => Just 'x2 - x5'
solve e k 'x3 + x4' => Just 'x2 - x5'
显然无法解决某些表达式:
solve e k 'x1 - x2 + x5' => Just '0'
尽管伪代码类似于ML,但我正在使用Java虚拟机,但是适用的算法和策略应该相同。