まず、Prologのノブであると私を許してください。 私が達成したいすべてが という述語作成 にある - オブジェクトのための[0,1] - を(例えば3)所望の長さを考える - が与えられたの(繰り返して)すべての可能な順列を検索します長(Iは、例えば、同じオブジェクトのリストを持っている場合0、1が複数回追加することができ、何の問題を複数回追加することはできません...)Prolog:繰返しですべての可能な順列を作成する方法は、オブジェクトのリストを与える
例:
? myPermutation(3, [0,1], L).
L = [0,0,0]
next->
L = [0,0,1]
next->
L = [0,1,0]
next->
L = [0,1,1]
....
next->
L = [1,1,1]
誰か私にそれを手伝ってもらえますか? ありがとうたくさん...
ヒント:削除述語を使用して何かを考えています... [0,1]からオブジェクトを削除する可能なすべての方法について、オブジェクトリストと質問Prologを与えるようなものです。
を私はその述語を持っている: デル(X、[X |テイル]、テール)。 del(X、[Y | Tail]、[Y | Tail1]): - del(X、Tail、Tail1)。 とI照会 del(X、[0,1]、_)です。 を返します。X = 0 X = 1 false バックトラック経由で返します。 私はアキュムレータ付きの述語が必要だと思います。長さを指定してdelを使って、[0,1、...、1]のリストを作成し、すべての解に戻します。 –