|
|
|
ПРИМЕНЕНИЕ СПИСКОВЫХ СТРУКТУР
|
|||
|---|---|---|---|
|
#18+
Требуется запрограммировать поиск правильной расстановки 8 ферзей на шахматной доске, т.е. такой чтобы эти ферзи не били друг друга. С помощью предиката uazirler (queens) 2-х аргументов, найти все правильные расстановки ферзей на шахматной доске размером , в которых на 3-ей вертикале ферзи стоят на нечетных, а в 4-ой вертикале на четных горизонталях. prolog 5.2 /*************UAZIRLER****************/ DOMAINS i=integer l=i* PREDICATES uazirler(l,i) uazirler(l,l,l) zheydy(i,l,i) member(i,l) delete(i,l,l) generate(i,i,l) CLAUSES % uazirler(List,Number) uazirler(T,N):- generate(1,N,U), uazirler(T,[],U). % uazirler(List,Sufix,Prefix ) uazirler(T,T,[]). uazirler(T,W,U0):- member(A,U0), not(zheydy(A,W,1)), delete(A,U0,U1), uazirler(T,[A|W],U1). zheydy(A,[B|W],R):- R=abs(A-B); R1=R+1, zheydy(A,W,R1). member(A,[A|U]). member(A,[_|U]):- member(A,U). delete(A,[A|U],U). delete(A,[B|U0],[B|U1]):- delete(A,U0,U1). generate (M,M,[M]). generate (N,M,[N|S]):- N<M, N1=N+1, generate (N1,M,S). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 09:46 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=51&tid=1341592]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
21ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 305ms |

| 0 / 0 |
