Контролно по Логическо програмиране, 2006 год. А група: 1 зад



Дата01.06.2017
Размер21.08 Kb.
#22582
Контролно по Логическо програмиране, 2006 год.
А група: 1 зад. Напишете дефиниции на Пролог на:

а) предикат p1(x, y), който по дадени x,yN+ разпознава дали сумата от делителите на x е равна на y.

б) предикат p2(x,Y), който по дадено xN+ генерира в Y (последователно, при преудовлетворяване) всички yN+, такива че сумата от делителите на y е равна на x.

в) предикат p3(x, L), който по дадено xN+ връща в L списък, който включва всички yN+, такива че сумата от делителите на y е равна на x.



2 зад. Напишете програма на Пролог, която по даден списък l = [ l1, …, ln], n0, чийто елементи са непразни списъци от числа, връща списък m= [m1, …, mn] от максималните им елементи (т.е. mi= maxli, 1  i  n).
В група: 1 зад. Напишете дефиниции на Пролог на:

а) предикат p1(x, y), който по дадени x,yN+ разпознава дали броят на делителите на x е равен на y.

б) предикат p2(x,Y), който по дадено xN+ генерира в Y (последователно, при преудовлетворяване) всички yN+, такива че броят на делителите на y е равен на x.

в) предикат p3(x, m, L), който по дадени x, mN+ връща в L списък, който включва всички yN+, ym, такива че броят на делителите на y е равен на x.



2 зад. Напишете програма на Пролог, която по даден списък l = [ l1, …, ln], n0, чийто елементи са непразни списъци от числа, връща списък s = [ s1, …, sn] от сумите на всеки от елементите на l (т.е. si= Σli, 1  i  n).

BONUS Да наречем представяне на матрицата A = (ai,j), 1  i  m, 1 j  n, списъка

lA = [ [ a1,1, …, a­1,n], … , [am,1, …, am,n] ].

Напишете програми на Пролог, които:

а) събират две матрици с една и съща размерност

б) транспонират матрица

в) умножават матрици с размерност mxn и nxk.

Тук, разбира се, предполагаме, че матриците, които се четат, и матрицата, която се връща, са представени по описания по-горе начин.

Контролно по Логическо програмиране, 2007 год.
1 зад. Казваме, че списъкът l = [ x1, …, xn], е палиндром ако [ x1, …, xn] = [ xn, …, x1], а l е почти палиндром, ако

А група: след промяна на някой елемент на l се получава палиндром.

В група: след вмъкване на на някакъв елемент (на произволна позиция) в дадения списък l се получава палиндром.

Напишете програма, която разпознава почти-палиндромите.


2 зад. Нека А е следното множество от естествени числа:

А група: A = { x| x = y­­­­­2 + z 2 за някои y,zN}

В група: A = { x| x = 2­­­­­y + 2 z за някои y,zN}.

Напишете а) разпознавател за множеството А; б) генератор за А.


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница