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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2017, 12:11   #1
нуб7
Пользователь
 
Регистрация: 22.10.2014
Сообщений: 13
Восклицание Помогите с описанием методов решения и описанием программы

% будем искать решение как набор 8 координат вида X/Y каждого из ферзей
% при этом понятно, что поскольку все вертикали так или иначе будут заняты
% задача сводится к отысканию соответствующих Y - координат
getSolution(S):-
S=[1/_,2/_,3/_,4/_,5/_,6/_,7/_,8/_],
solution(S).

% доска 0x0 без ферзей очевидно является решением
solution([]).

% доска NxN является решением, если является решением её под-доска (N-1)*(N-1),
% а первый ферзь не бьет ферзей на этой под-доске.
solution([X/Y | Others]) :-
solution(Others),
member(Y, [1, 2, 3, 4, 5, 6, 7, 8]),
nokill(X/Y, Others).

% очевидно что ферзь с любыми координатами не бьет ферзей из пустого массива,
% поскольку просто некого бить
nokill(_, []).

% ферзь не бьет набор ферзей если он не бьет первого ферзя из набора
% и не бьет остальных ферзей набора
nokill(X/Y, [X1/Y1 | Others]) :-
Y =\= Y1, % на разных горизонталях
Y1-Y =\= X1-X, % на разных диагоналях
Y1-Y =\= X-X1,
nokill(X/Y, Others).

* This source code was highlighted with Source Code Highlighter.
нуб7 вне форума Ответить с цитированием
Старый 30.04.2017, 12:19   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от нуб7 Посмотреть сообщение
This source code was highlighted with Source Code Highlighter.
чот какой-то унылый хайлайтер, ничего не захайлайтил
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с описанием кода программы hakusan_90 Общие вопросы Delphi 0 22.04.2015 17:30
Проблема с описанием события Программистик Помощь студентам 0 14.10.2012 14:48
Проблема с описанием типа в public Trikster Общие вопросы Delphi 9 20.05.2012 17:41
программа с описанием и блок-схемой Shaak Паскаль, Turbo Pascal, PascalABC.NET 1 29.12.2008 16:10