Тождество двух множеств - Prolog

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть такая задача: "Ввести с клавиатуры два множества X и Y в форме списков целых чисел. Проверьте тождество двух множеств X и Y.". Как я понял, в прологе нет предиката множества и его нужно подать в виде списка со свойствами множества, т.е.: для множества не важен порядок элементов и множество не имеет одинаковых элементов. Смог сообразить только как проверить принадлежит ли какое-то число списку(множеству):
Думаю, что проверка на тождество должна быть построена подобным образом, т.е. для каждого элемента первого множества должен быть цикл проверки этого элемента со всеми элементами второго множества. Как такое можно реализовать? Спасибо.

Решение задачи: «Тождество двух множеств»

textual
Листинг программы
    % ---- Сортировка списка вставкой
    sort([A|L], S, R):-           % выделяем во входном списке голову и хвост
        insert(A, S, S1),         % голову вставляем в промежуточный результат
        sort(L, S1, R).           % для сортировки хвоста входим в рекурсию
    sort([], L, L).               % выход: промежуточный результат становится окончательным
 
    % ---- Вставка элемента в упорядоченный список
    insert(A, [B|L], [B|L1]):-    % голова переносится в выходной список
        A > B, !,                 % пока вставляемый элемент больше этой головы
        insert(A, L, L1).         % элемент рекурсивно вставляем в хвост.
    insert(A, L, [A|L]).          % иначе приписываем элемент в начало списка

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы