SHARE
TWEET

Untitled

a guest Mar 26th, 2019 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. false macht Lösungsmenge kleiner oder sie bleibt gleich!
  2.  
  3.  
  4. --19)
  5.  
  6. :- dif(X,a).
  7. :- vorfahre_von_abstand(V,N,X).
  8. :-= V = something concrete
  9.  
  10. vorfahre_v_a(V,N,s(x)) :-
  11.     kind,
  12.     vorfahre
  13.  
  14.  
  15.  
  16. --20)
  17.  
  18. n_n_s(0,A,A).
  19. n_n_s(s(A),B,s(C)) :-
  20.     n_n_s(A,B,C).
  21.  
  22. e1(E) :-
  23.     nns(X,E,X).
  24. :- e1(E).
  25. Blendet nur die X alle aus, werden aber noch immer aufgezählt.
  26.  
  27. :/-& e1(E), false.
  28. :/-& dif(E,0), e1(E).
  29.  
  30. :- nns(E,X,X).
  31. Scheinlösungen!
  32.  -> occour check
  33.  
  34.  
  35.  
  36. --21)
  37.  
  38. W = w(1,2,3).
  39.  
  40. b)
  41. :- würfel(W).
  42. :- W = w(1,1,1), würfel(W).
  43. :/- würfel(W), false.
  44.  
  45. :- parkettspalte([W]) <<< würfel(W).
  46.  
  47. :/- würfel(w(1,4,2)).
  48. :/- würfel(w(_,4,_)).
  49.  
  50. würfel(w(A,B,C)) :-
  51.     holzart(A),
  52.     holzart(B),
  53.     ...     C
  54.  
  55. holzart(1).
  56. ...     2
  57.         3
  58.  
  59. (same)
  60. würfel(W) :-
  61.     W = w(A,B,C),
  62.     holz...
  63.     ...
  64.  
  65.  
  66. --23)
  67.  
  68. Listen
  69.  
  70. [V] = [V|[]]
  71.  
  72. [a,b,c] = [a|[b,c]] = [a|[b|[],c]]
  73.  
  74. zerlegen
  75. [a] -> [a|X1], X1=[]. -> [X2|X1], X1=[], X2=a.
  76.  
  77.  
  78.  
  79. --24)
  80.  
  81. :- würfelliste(Ws).
  82. :/-& würfelliste(Ws), false.
  83.  
  84. Lösungen anzeigen lassen:
  85. :- Ws = [_,_,_|_], würfelliste(Ws).
  86. /& , false.
  87.  
  88.  
  89. :- WS = [_,_,_], würfelliste(Ws).
  90. terminiert  / ,false
  91.  
  92. :/- Ws = [w(4,_,_)|_], würfellsite.
  93. sehr allgemeine negative zusicherungen
  94.  
  95.  
  96. :/-Ws = [_,_], würfelliste(Ws), false.
  97. 2 noch ok, 3 timed out
  98.  
  99. würfelliste([]).  % nicht ausreichend
  100. würfelliste([W|Ws]) :-
  101.     würfel(W),
  102.     würfelliste(Ws).
  103.  
  104. ^- wenn würfel und würfelliste vertauscht werden, kann würfel nicht mehr bei der
  105. termination "helfen". Es terminiert nur noch wenn die länge der liste beschränkt ist.
  106.  
  107. Besser terminierende Variante (fast) immer die bessere Variante
  108.  
  109. liste([]).
  110. liste([_X|Xs]) :-
  111.     liste(Xs).       -> dann in die zweite Zeile einfügen
  112.  
  113.  
  114.  
  115. --25)
  116.  
  117. :- allegleich(Xs).
  118. :/-& allegleich(Xs), false.
  119.  
  120. :- Xs = [_,_,_|_], ...
  121. :- Xs = [any0,any0,any0], allegleich(Xs).
  122. :/- Xs = [any0,any1,...], ...
  123. ...
  124.  
  125. allegleich([]).
  126. allegleich([_E|Es]) :-
  127.     e_es(E,Es),
  128.     allegleich(Es).
  129.  
  130. e_es(_E, []).
  131. e_es(E, [E|_]).
  132.  
  133.  
  134. :- allewürfelgleich(Ws).
  135. /&, false.
  136.  
  137. ----
  138. negative Zusicherungen erzeuegen
  139. huehue
  140. ---
  141.  
  142. :- Ws = [_,_,_,_,_], allewürfelgleich(Ws).
  143. :/-   ....  , false.
  144.  
  145.  
  146. allewürfelgleich(Ws) :-
  147.     würfelliste(Ws),
  148.     allegleich(Ws).
  149.  
  150. Beide ^ haben unendlich große Lösungsräume. Durchschnitt ist endlich.
  151. allegleich zuerst ist besser -> einschränken nicht durch stoopid suchen wie bei würfelliste.
  152.  
  153.  
  154.  
  155. --26)
  156.  
  157. TRIVIAL!
  158. Das Selbe halt nochmal, nur anders.
  159.                                         - best quote
  160.  
  161.  
  162.  
  163. --27)
  164.  
  165. :- dwrotteile(Ringe).
  166. :- harsdörfer(Ringe) <<< dwortteile(Ringe).
  167.  
  168. :- ring1(R1).
  169.  
  170. dwortteile([R1,...,R5]) :-
  171.     ring1(R1),
  172.     ...,
  173.     ring5(R5).
  174.  
  175. "Drehung" beginnt bei Ring5. -> zu Ring1
  176.  
  177.  
  178. ... fanboy gelaber über prolog. aaah prolog is das beste was e je gegeben hat. mmmhhhmm.
  179.  
  180.  
  181.  
  182.  
  183. --28)
  184.  
  185. :- Xs = [_,_,_], keinelement_von(X, Xs).
  186. / ... , false.
  187.  
  188. negative zusicherungen
  189.  
  190. keinelement_von(_X, []),
  191. keinelement_von(X, [E|Es]) :-
  192.     dif(X, E),
  193.     keinelement_von(X, Es).
  194.  
  195.  
  196. :- alleunterschiedlich(Es).
  197. /& ... ,false.
  198.  
  199. negative zusicherungen
  200.  
  201. alleunterschiedlich([]).
  202. alleunterschiedlich([E|Es]) :-
  203.     keinelement_von(E, Es),
  204.     alleunterschiedlich(Es).
  205.  
  206.  
  207.  
  208.  
  209. --29)
  210.  
  211. No.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top