Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Coder How To's

Algorithmen Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

Prolog: "n-Damenproblem"

n-dame.pl
  1. ndamen(N, Ds) :-
  2.         range(N, NL, Ds),
  3.         permutation(NL, Ds), % generate
  4.         sicher(Ds). % test
  5.  
  6. % Zahlen 1..N, N Variablen
  7. range(0, [], []).
  8. range(N, [N|L], [_|Ds]) :-
  9.         N >= 0,
  10.         N1 is N-1,
  11.         range(N1, L, Ds).
  12.  
  13. sicher([]).
  14. sicher([D|Ds]) :-
  15.         sicher(Ds, 1, D),
  16.         sicher(Ds).
  17.  
  18. % Dame sicher wenn Diagonale frei
  19. sicher([], _, _).
  20. sicher([TD|Ds], N, D) :-
  21.         TD + N =\= D,
  22.         TD - N =\= D,
  23.         N1 is N+1,
  24.         sicher(Ds, N1, D).

[ndame].
% ndame compiled 0.00 sec, 1,872 bytes
Yes

?- ndamen(8, X).
X = [4, 7, 3, 8, 2, 5, 1, 6] ;
X = [3, 6, 4, 2, 8, 5, 7, 1] ;
X = [3, 5, 2, 8, 6, 4, 7, 1] ;
X = [6, 3, 7, 2, 4, 8, 1, 5] ;
X = [3, 6, 8, 2, 4, 1, 7, 5] ;
...
No

Zuletzt geändert am 14.07.2007 13:33 Uhr
  Impressum