prolog如何获得某个数据结构列表的排列。

时间:2014-03-23 18:21:37

标签: prolog

任何人都可以帮助我获得所有可能的游戏,而不仅仅是我在这里获得的仅仅是一种组合吗?

sched(0,[]).

sched(RoundNumber, [game(Y, RoundNumber, quarterfinals)|T]) :-
    RoundNumber > 1,
    Y is RoundNumber -1,
    N is RoundNumber -2,
    sched(N, T).

1 个答案:

答案 0 :(得分:0)

@mbratch

? - schedule_rounds(4,X)。

X = [[比赛(1,3,半决赛),比赛(2,4,半决赛)],[比赛(1,2,决赛)]];

X = [[比赛(1,4,半决赛),比赛(2,3,半决赛)],[比赛(1,2,决赛)]]; 假的。

? - schedule_rounds(8,X)。

X = [[游戏(1,5,四分之一决赛),游戏(2,6,四分之一决赛),游戏(3,7,四分之一决赛),

游戏(4,8,quarter_finals)],[游戏(1,3,半决赛),游戏(2,4,半决赛)],

[游戏(1,2,决赛)]];

X = [[游戏(1,5,四分之一决赛),游戏(2,6,四分之一决赛),游戏(3,7,四分之一决赛),

游戏(4,8,quarter_finals)],[游戏(1,4,半决赛),游戏(2,3,半决赛)],

[游戏(1,2,决赛)]];

X = [[游戏(1,5,四分之一决赛),游戏(2,6,四分之一决赛),游戏(3,8,四分之一决赛),

游戏(4,7,quarter_finals)],[游戏(1,3,半决赛),游戏(2,4,半决赛)],

[游戏(1,2,决赛)]];

...