本文介绍了gnu Prolog Powerset修改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我得到这个用于功率设置:
So i got this for powerset:
powerset([], []).
powerset([H|T], P) :- powerset(T,P).
powerset([H|T], [H|P]) :- powerset(T,P).
这将生成列表的所有集合.是否可以按列表顺序生成所有集合.
This generates all sets of a list. Is it possible to generate all sets in list order.
示例:
List = [a,b,c]
我想得到
[a],[a,b],[a,b,c],[b],[b,c],[c]
请注意,此子集列表中没有[a,c]
,因为它们是从左到右开始的子集.
Note there is no [a,c]
in this list of subsets since these are subsets starting from the left and going to the right.
我尝试使用附加和递归的组合,但是并没有达到我想要的效果.在这一点上有点难受.
I've tried using a combination of append and recursion, but that didn't work out as i wanted it to. Little stumped at this point.
谢谢.
推荐答案
如何
powerset(L, [H|T]):-
append([H|T], _, L).
powerset([_|L], P):-
powerset(L, P).
这篇关于gnu Prolog Powerset修改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!