我必须通过各种子句开发一个列表来获得一个值,但不知道子句之间的最佳组合,因为每个子句都会从初始列表中删除项目以及剩余列表中的后续工作。
是否可以创建单个子句来找到子句的最佳组合?
calculate(List,Value):-
calculate_value1(List,R,Value1),
calculate_value1(List,R,Value2),
calculate_value1(List,R,Value3),
max([Value1,Valu2,Value3],Value).
calculate_value1(List,Rest,Value1):-
funcA(List,Rest1,ValueA),
funcB(Rest1,Rest2,ValueB),
funcC(Rest2,Rest3,ValueC).
Value1 is ValueA + ValueB + ValueC.
calculate_value2(List,Rest,Value2):-
funcB(List,Rest1,ValueB),
funcA(Rest1,Rest2,ValueA),
funcC(Rest2,Rest3,ValueC).
Value2 is ValueA + ValueB + ValueC.
calculate_value3(List,Rest,Value3):-
funcC(List,Rest1,ValueC),
funcB(Rest1,Rest2,ValueB),
funcA(Rest2,Rest3,ValueA).
Value3 is ValueA + ValueB + ValueC.
谢谢你。
我必须比较两个列表,并且必须能够找到它们之间的最佳平衡。然后在列表上运行各种子句,以确定第一个和第二个之间是否存在相同的元素,然后以 100% 的比率或列表中的一个是另一个第二个的总和。还要检查他们是否是有密切关系的邻居,110比150更接近100。但数据不仅仅是数字而已。
现在我有几个单独的子句:equals(),它在两个列表之间平等地标识元素,sum(),它用它们之和的比率标识项目,multiply(),等等......对于每个子句在输入中,我得到一个列表和一个满足该子句标准的项目列表 (sum , multiplication, c ....) ,找到的百分比以及为该子句提供输入的剩余元素的列表 next 。
但是,这样做是一个程序程序,因为我首先计算相同的元素,然后是总和等......
我希望能够创建一个动态程序,该程序能够按子句的任何顺序确定最佳百分比。
我希望我更清楚。