我正在尝试使用 prologs 约束求解器解决特定问题,但我被卡住了:D 我的问题要求的更通用版本是这样的:
:- lib(ic).:- lib(ic).
solve( [A1*X+B1*Y=C1, A2*X+B2*Y=C2] ):-
X::[0..999],
Y::[0..999],
X #\= 0,
Y #\= 0,
A1*X+B1*Y#=C1, % line1
A2*X+B2*Y#=C2. % line2
这是我使用的查询/目标:
solve( [2*X+3*Y=5, 3*X+2*Y=5] ).
并且程序将计算 X 和 Y 的值(在这种情况下 X=1,Y=1 是解决方案)。我在想的是,如果目标/查询中的参数数量可以变化。在这种情况下,我的序言程序需要有一个动态挂起的目标来代替用 %line1 和 %line2 注释的行。
问题是,我如何使这些表达延迟..?我不想在问题中对这些进行硬编码,并认为只有两个表达式会通过目标..
希望问题很清楚。谢谢。