User Tools

Site Tools


codeq:prolog:naloge:sister_2

This is an old revision of the document!


Opis

Predikat sister(X, Y) velja natanko takrat, kadar je X sestra od Y. Primer klica:

?- sister(X, patricia).
  X = vanessa.

Predznanje

Povezave so podane s predikatom parent/2. Predikata male/1 in female/1 določata spol vsake osebe (vozlišča).

parent(tina,william).                      male(william).
parent(thomas,william).                    male(thomas).
parent(thomas,sally).                      male(jeffrey).
parent(thomas,jeffrey).                    male(andrew).
parent(sally,andrew).                      male(steve).
parent(sally,melanie).                     male(patrick).
parent(andrew,joanne).                     male(john).
parent(jill,joanne).                       male(michael).
parent(joanne,steve).                      male(frank).
parent(william,vanessa).                   male(george).
parent(william,patricia).                  male(morty).
parent(vanessa,susan).                     male(jerry).
parent(patrick,susan).                     male(kramer).
parent(patricia,john).                     male(aleksandr).
parent(john,michael).                      male(alessandro).
parent(john,michelle).                     male(aleksander).

parent(frank,george).                      female(tina).
parent(estelle,george).                    female(sally).
parent(morty,jerry).                       female(melanie).
parent(helen,jerry).                       female(joanne).
parent(jerry,anna).                        female(jill).
parent(elaine,anna).                       female(vanessa).
parent(elaine,kramer).                     female(patricia).
parent(george,kramer).                     female(susan).
                                           female(michelle).
parent(margaret,nevia).                    female(estelle).
parent(margaret,alessandro).               female(helen).
parent(ana,aleksander).                    female(elaine).
parent(aleksandr,aleksander).              female(anna).
parent(nevia,luana).                       female(margaret).
parent(aleksander,luana).                  female(ana).
parent(nevia,daniela).                     female(nevia).
parent(aleksander,daniela).                female(luana).
                                           female(daniela).

Rešitev

sister(X, Y) :-
    parent(Z, X),
    parent(Z, Y),
    female(X),
    X \== Y.

Namigi

# Namig
1 X in Y morata imeti (vsaj enega) skupnega starša.
2 X mora biti ženskega spola.
3 X ni sestra sama sebi.

Testni primeri

#1

nex(sister(vanessa, andrew))
nex(sister(elaine, george))
nex(sister(sally, thomas))

#2

nex(sister(andrew, melanie))
nex(sister(patrick, vanessa))
nex(sister(michael, michelle))

#3

nex(sister(vanessa, vanessa))
nex(sister(sally, sally))
nex(sister(daniela, daniela))
codeq/prolog/naloge/sister_2.1436206173.txt.gz · Last modified: 2015/07/06 20:09 by timmy