Арифметическая прогрессия - Prolog

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

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

Дать определение N-ного члена арифметической прогрессии. Помогите пожалуйста.

Решение задачи: «Арифметическая прогрессия»

textual
Листинг программы
marka("russkie1").
marka("bolgarskie").
marka("chewskie").
marka("russkie2").
 
odinakovie(X,X).
odinakovie("russkie1","russkie2").
odinakovie("russkie2","russkie1").
 
solution(Y1,Y2,Y3,Y4):-
    marka(Y1),marka(Y2),not(Y1=Y2),
    marka(Y3),not(Y1=Y3),not(Y2=Y3),
    marka(Y4),not(Y1=Y4),not(Y2=Y4),not(Y3=Y4),
    not(odinakovie(Y1,Y2)),
    not(odinakovie(Y1,Y4)),
    not(odinakovie(Y3,Y4)),
    not(odinakovie(Y1,Y3)),
    not(odinakovie(Y2,Y4)),
    not(Y1="bolgarskie").

Объяснение кода листинга программы

В коде присутствуют следующие элементы:

  1. Три переменные: Y1, Y2, Y3, Y4, которые являются строками.
  2. Два предиката: marka и odinakovie.
  3. Предикат marka описывает маркировку элементов. Он принимает два аргумента, первый из которых обозначает текущий элемент, а второй — маркировку этого элемента.
  4. Предикат odinakovie описывает уникальность элементов. Он принимает три аргумента, первые два из которых обозначают текущие элементы, а третий — их взаимное расположение (первый элемент, второй элемент, взаимное расположение).
  5. Предикат solution описывает решение задачи. Он принимает четыре аргумента, которые соответствуют четырем найденным элементам.
  6. В коде присутствуют три строки, которые обозначают маркировку элементов: russkie1, bolgarskie, chewskie, russkie2.
  7. В коде присутствуют следующие факты: — два факта для предиката marka: — факт marka(russkie1) описывает, что первый элемент имеет маркировку russkie1; — факт marka(bolgarskie) описывает, что второй элемент имеет маркировку bolgarskie; — факт marka(chewskie) описывает, что третий элемент имеет маркировку chewskie; — факт marka(russkie2) описывает, что четвертый элемент имеет маркировку russkie2; — два факта для предиката odinakovie: — факт odinakovie(russkie1,russkie2) описывает, что первый и второй элементы не могут быть одинаковыми; — факт odinakovie(russkie2,russkie1) описывает, что второй и первый элементы не могут быть одинаковыми; — факт not(Y1=bolgarskie) описывает, что первый элемент не может иметь маркировку bolgarskie.

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


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

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

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