Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2013, 09:36   #1
Kalinak
 
Регистрация: 31.10.2013
Сообщений: 5
По умолчанию Применение списковых структур (Prolog 5.2)

Требуется запрограммировать поиск правильной расстановки 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).

Заранее спасибо.




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 12.11.2013 в 13:09.
Kalinak вне форума Ответить с цитированием
Старый 11.03.2020, 15:41   #2
fish72
 
Регистрация: 11.03.2020
Сообщений: 4
По умолчанию

поиск правильной расстановки 8 ферзей

Вот программа "QueensProblem", которая делает это:
https://yadi.sk/d/ZSKQmtIFtVhatw
fish72 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление структур из массива структур Infini Помощь студентам 2 02.03.2013 22:31
Логическое применение vaselevskii Microsoft Office Access 8 27.01.2012 21:57
задача по с++ на применение if и else Gmek Помощь студентам 17 29.11.2011 18:53
применение c++ vvsh Общие вопросы C/C++ 21 22.01.2011 22:53
применение указателей, структур и объединений Fifo4ka Общие вопросы C/C++ 7 21.10.2009 22:30