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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2018, 01:42   #11
emoface
 
Регистрация: 01.03.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В циклах прямым перебором не катит? Вполне решаемо - вариантов выборки трех мух 74, у трех мух вариантов новых клеток 512 или меньше, если муха на краю или достаточно близко от другой.
Я сделал для 9х9, но в вывод идёт все вариации расстановки, можете ли помочь вытащить из них именно моё решение? Ну, взять 3 мухи и переставить их.

Код:
myhi([]). % когда список пуст - решение найдено

 myhi([ Row/Col | Rest]) :-                   % в противном случае для каждой строки
            myhi(Rest),                       % помещаем муху в каждую высокую строку
            member(Col, [1,2,3,4,5,6,7,8,9]), % и выбираем одну из возможных позиций столбца
            safe( Row/Col, Rest).             % смотрим безопасная ли позиция, если нет, 
                                              % возвращаемся назад и пробуем  другую
safe(Anything, []).                           % пустая занавеска всегда безопасная

safe(Row/Col, [Row1/Col1 | Rest]) :-   % проверяем строку
            Col =\= Col1,              % проверяем столбец
            Col1 - Col =\= Row1 - Row, % проверяем диагональ
            Col1 - Col =\= Row - Row1,
            safe(Row/Col, Rest).       % если всё нормально, пробуем подставить
member(X, [X | Tail]).

member(X, [Head | Tail]) :-
            member(X, Tail).
		
myhi([1/R9, 2/R8, 3/R7, 4/R6, 5/R5, 6/R4, 7/R3, 8/R2, 9/R1]).
emoface вне форума Ответить с цитированием
Старый 05.04.2018, 01:57   #12
emoface
 
Регистрация: 01.03.2018
Сообщений: 7
По умолчанию

Преподаватель сказал, что можно обычным перебором
может кто помочь?
emoface вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" Бахтиёр1916 Windows 1 05.04.2017 12:53
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Для заданной строки определить все входящие в неё символ. Например: строка "abccbbabbac" состоит из символов "a", "b" и "c" Sandakan01 Помощь студентам 1 24.02.2016 03:20