• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Задачи По Прологу

  • Автор темы Автор темы iiukyr4uk
  • Дата начала Дата начала
I

iiukyr4uk

Ребят, помогите кто нить плиз, не знаю как сделать лабу(((


1.Определите (рекурсивно, не используя ^) предикат power(X, N, Power), который выполняется, если Power -- число X в степени N.

?- power(3, 2, X).
X = 9

2. Представим многочлены как списки их коэффициентов в порядке убывания степени. Например, многочлен 2*x^2+1 будет представлен как [2,0,1]. Определите предикат eval_poly(Polynom, X, Result), выполняющийся, если Result -- значение многочлена Polynom при аргументе X. Для возведения в степень используйте оператор ^ или определённый в прошлой задаче power/3. Возможно также использование схемы Горнера.

?- eval_poly([2,0,1,0], 2, Result).
Result = 9

3. В числе операторов, определённых в Prolog, есть /\ (и), \/ (или), \+ (не) и -> (следует). Определите предикат nnf(Formula), который выполняется, если Formula -- формула, в которой отрицания стоят только перед переменными (переменные в формуле представляем атомами).

?- nnf((x /\ \+ y) -> \+ x /\ z).
Yes
?- nnf((x /\ \+ y) -> \+ (x /\ z)).
No

4. Определите предикат nnf(Formula, NNF), который выполняется, если NNF -- формула, полученная из Formula эквивалентными преобразованиями, в которой отрицания стоят только перед переменными.

?- nnf(\+ ((x -> y) /\ z), NNF).
NNF = (x /\ \+ y) \/ \+ z
 
помогу за вознаграждение. Дорого.
ICQ 395-546-218
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab