Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- false macht Lösungsmenge kleiner oder sie bleibt gleich!
- --19)
- :- dif(X,a).
- :- vorfahre_von_abstand(V,N,X).
- :-= V = something concrete
- vorfahre_v_a(V,N,s(x)) :-
- kind,
- vorfahre
- --20)
- n_n_s(0,A,A).
- n_n_s(s(A),B,s(C)) :-
- n_n_s(A,B,C).
- e1(E) :-
- nns(X,E,X).
- :- e1(E).
- Blendet nur die X alle aus, werden aber noch immer aufgezählt.
- :/-& e1(E), false.
- :/-& dif(E,0), e1(E).
- :- nns(E,X,X).
- Scheinlösungen!
- -> occour check
- --21)
- W = w(1,2,3).
- b)
- :- würfel(W).
- :- W = w(1,1,1), würfel(W).
- :/- würfel(W), false.
- :- parkettspalte([W]) <<< würfel(W).
- :/- würfel(w(1,4,2)).
- :/- würfel(w(_,4,_)).
- würfel(w(A,B,C)) :-
- holzart(A),
- holzart(B),
- ... C
- holzart(1).
- ... 2
- 3
- (same)
- würfel(W) :-
- W = w(A,B,C),
- holz...
- ...
- --23)
- Listen
- [V] = [V|[]]
- [a,b,c] = [a|[b,c]] = [a|[b|[],c]]
- zerlegen
- [a] -> [a|X1], X1=[]. -> [X2|X1], X1=[], X2=a.
- --24)
- :- würfelliste(Ws).
- :/-& würfelliste(Ws), false.
- Lösungen anzeigen lassen:
- :- Ws = [_,_,_|_], würfelliste(Ws).
- /& , false.
- :- WS = [_,_,_], würfelliste(Ws).
- terminiert / ,false
- :/- Ws = [w(4,_,_)|_], würfellsite.
- sehr allgemeine negative zusicherungen
- :/-Ws = [_,_], würfelliste(Ws), false.
- 2 noch ok, 3 timed out
- würfelliste([]). % nicht ausreichend
- würfelliste([W|Ws]) :-
- würfel(W),
- würfelliste(Ws).
- ^- wenn würfel und würfelliste vertauscht werden, kann würfel nicht mehr bei der
- termination "helfen". Es terminiert nur noch wenn die länge der liste beschränkt ist.
- Besser terminierende Variante (fast) immer die bessere Variante
- liste([]).
- liste([_X|Xs]) :-
- liste(Xs). -> dann in die zweite Zeile einfügen
- --25)
- :- allegleich(Xs).
- :/-& allegleich(Xs), false.
- :- Xs = [_,_,_|_], ...
- :- Xs = [any0,any0,any0], allegleich(Xs).
- :/- Xs = [any0,any1,...], ...
- ...
- allegleich([]).
- allegleich([_E|Es]) :-
- e_es(E,Es),
- allegleich(Es).
- e_es(_E, []).
- e_es(E, [E|_]).
- :- allewürfelgleich(Ws).
- /&, false.
- ----
- negative Zusicherungen erzeuegen
- huehue
- ---
- :- Ws = [_,_,_,_,_], allewürfelgleich(Ws).
- :/- .... , false.
- allewürfelgleich(Ws) :-
- würfelliste(Ws),
- allegleich(Ws).
- Beide ^ haben unendlich große Lösungsräume. Durchschnitt ist endlich.
- allegleich zuerst ist besser -> einschränken nicht durch stoopid suchen wie bei würfelliste.
- --26)
- TRIVIAL!
- Das Selbe halt nochmal, nur anders.
- - best quote
- --27)
- :- dwrotteile(Ringe).
- :- harsdörfer(Ringe) <<< dwortteile(Ringe).
- :- ring1(R1).
- dwortteile([R1,...,R5]) :-
- ring1(R1),
- ...,
- ring5(R5).
- "Drehung" beginnt bei Ring5. -> zu Ring1
- ... fanboy gelaber über prolog. aaah prolog is das beste was e je gegeben hat. mmmhhhmm.
- --28)
- :- Xs = [_,_,_], keinelement_von(X, Xs).
- / ... , false.
- negative zusicherungen
- keinelement_von(_X, []),
- keinelement_von(X, [E|Es]) :-
- dif(X, E),
- keinelement_von(X, Es).
- :- alleunterschiedlich(Es).
- /& ... ,false.
- negative zusicherungen
- alleunterschiedlich([]).
- alleunterschiedlich([E|Es]) :-
- keinelement_von(E, Es),
- alleunterschiedlich(Es).
- --29)
- No.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement