Файл: Лабораторная работа 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.

На обед короля Артура приглашено шесть рыцарей. Сид, Ричард, Гарольд, Томас, Ланселот и Передур. Сид и Ричард, Гарольд и Томас, Ланселот и Передур, Сид и Передур враждуют друг с другом. Необходимо рассадить их за круглый стол так, чтобы никакие два врага не сидели рядом.

Напишите программу, которая выводит все такие рассадки.