在Prolog中对列表进行洗牌

3

简单的问题,我该如何在Prolog中洗牌一个列表,使得A1成为洗牌后的列表?

shuffle([1,1,1,2,3,4],A1),

我在网上尝试了几种谓词,但它们似乎都不起作用。还发现这个链接,但根据SWI-Prolog的说法,它已经不再可用了。

1个回答

6
你可以使用random_permutation/2函数。它在SWI-Prolog中可用。这里提供了更多信息。
?- random_permutation([1,2,3],L).
L = [1, 3, 2].

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接