Файл: Лабораторная работа 9 Числа и перестановки в Прологе Задача 1.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 37
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторная работа № 9
Числа и перестановки в Прологе
Задача 1.
Имеется шесть четырёхзначных чисел. 7013, 9532, 2084, 4237, 3569 и 2374. Необходимо расположить их в цепочку так, чтобы последняя цифра предыдущего числа совпадала с первой цифрой следующего.
Напишите программу, которая выводит все такие цепочки.
Программа будет такой.
predicates
number (integer)
solve (integer,integer,integer,integer,integer,integer)
сlauses
number (7013).
number (9532).
number (2084).
number (4237).
number (3569).
number (2374).
solve(X1,X2,X3,X4,X5,X6):-
number(X1), number(X2), X2<>X1, X1 mod 10=X2 div 1000,
number(X3), X3<>X1,X3<>X2, X2 mod 10=X3 div 1000,
number(X4), X4<>X1,X4<>X2,X4<>X3, X3 mod 10=X4 div 1000,
number(X5), X5<>X1,X5<>X2,X5<>X3,X5<>X4, X4 mod 10=X5 div 1000,
number(X6), X6<>X1,X6<>X2,X6<>X3,X6<>X4,X6<>X5,
X5 mod 10=X6 div 1000.
goal
solve(X1,X2,X3,X4,X5,X6).
Объясните, как Пролог находит решение.
В разделе goalcпросите, есть ли цепочка, которая начинается с числа 2084.
Задача 2.
Найдите все перестановки чисел 1, 2, 3, 4 и 5, в которых ни одно число не стоит на своём месте. Для этого напишите программу.
Задача 3.
На обед короля Артура приглашено шесть рыцарей. Сид, Ричард, Гарольд, Томас, Ланселот и Передур. Сид и Ричард, Гарольд и Томас, Ланселот и Передур, Сид и Передур враждуют друг с другом. Необходимо рассадить их за круглый стол так, чтобы никакие два врага не сидели рядом.
Напишите программу, которая выводит все такие рассадки.