![]() |
|
|
![]()
|
|
| iiukyr4uk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 14.4.2013 Репутация: нет Всего: нет |
Ребят, помогите кто нить плиз, не знаю как сделать лабу(((
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 |
|||
|
||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |