我必须通过各种子句开发列表来获取值,但不知道子句之间的最佳组合,因为每个子句从初始列表中删除项目,后续工作在剩余列表中。
是否可以创建单个子句,找到条款的最佳组合?
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接近100而不是150。但数据不仅仅是数字。
现在我有几个单独的子句:equals(),它们在两个列表之间平等地标识元素sum(),它标识具有它们之和的比率的项目,multiply()等.... 对于输入中的每个子句,我是否得到一个列表和符合该子句标准的项目列表(sum,multiplication,c ....),找到的百分比以及为其提供输入的剩余元素列表条款接下来。
然而,这样做是一个程序性的程序,因为我首先计算的元素相同,然后总和等......
我希望能够创建一个动态程序,能够通过子句识别任何顺序中的最佳百分比。
我希望我更清楚。