Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prolog zadatak, termovi

[es] :: Veštačka inteligencija :: Prolog zadatak, termovi

[ Pregleda: 2978 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

GluppiUsername

Član broj: 284329
Poruke: 6
*.crnagora.net.



Profil

icon Prolog zadatak, termovi04.12.2011. u 23:25 - pre 149 meseci
Treba da riješim sledeći zadatak:
Ternarno stablo je sastavljeno od termova n(a, b, c) koji se nazivaju čvorovi, gdje su a, b, i c ili čvorovi ili cijeli brojevi. Pretpostavite da su dozvoljeni cijeli brojevi 0 i 1. Napisati PROLOG predikat koji će da vrati listu svih 0 i listu svih 1 u datom drvetu. Na primjer, enum(n(n(0, 1, 0), 1, 0), X, Y) treba da postavi X na [0, 0, 0], a Y na [1, 1]. Obavezno koristiti dvije liste.

Imam ovakvu odeju:
Code:

enum(null, [], []).
enum(n(A,_,_), X, Y) :- A == 0, !, cons(0,X,X), enum(A,X,Y).
enum(n(A,_,_), X, Y) :- cons(1,Y,Y), enum(A,X,Y).

/* cons(X, Xs, L) */
/* L je lista koja nastaje dodavanjem elementa X na pocetak liste Xs */
cons(X, [], [X]). 
cons(X, Xs, [X|Xs]).


I ovako redom za svaku od preostale tri pozicije n(_,A,_) i n(_,_,A). Ali problem je što ne radi ni za najednostavnije upite tipa : enum(n(0,0,0), X, Y).
 
Odgovor na temu

Mzo
Milan Z.

Član broj: 17956
Poruke: 19
*.dynamic.isp.telekom.rs.



Profil

icon Re: Prolog zadatak, termovi05.12.2011. u 20:14 - pre 149 meseci
Code:


join_lists([], L, L).
join_lists([X|R], L, [X|R1]):- join_lists(R, L, R1).

enum(1, [], [1]).
enum(0, [0], []).
enum(n(A,B,C), X, Y):-enum(A, Xa, Ya), enum(B, Xb, Yb), enum(C, Xc, Yc),
                               join_lists(Xa, Xb, Xab), join_lists(Xab, Xc, X),
                               join_lists(Ya, Yb, Yab), join_lists(Yab, Yc, Y).
 
Odgovor na temu

GluppiUsername

Član broj: 284329
Poruke: 6
*.crnagora.net.



Profil

icon Re: Prolog zadatak, termovi06.12.2011. u 04:15 - pre 149 meseci
hvala
 
Odgovor na temu

[es] :: Veštačka inteligencija :: Prolog zadatak, termovi

[ Pregleda: 2978 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.