【发布时间】:2014-02-03 22:27:09
【问题描述】:
请帮我解决这个问题:
子集(N,[1,2,3],L)。
如果 N=2,我想要的结果是:
[1,2];
[2,1];
[1,3];
[3,1];
[2,3];
[3,2];
(以任何顺序)
【问题讨论】:
-
如果是作业请标记为这样
-
select/3 内置可以帮你解决这个小问题
-
请不要只发布您的作业,而是要付出一些努力。你试过什么?
-
我的解决方案:
子集(0,,[])。
子集(N, [X | T], [X | R]) :- N > 0, N1 是 N - 1, 子集(N1, T, R)。
子集(N,[ | T],R):- N > 0,子集(N,T,R)。
结果是:
[1,2];[1,3];[2,3];
标签: prolog