Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  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.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement