Zur Komplexität des Prolog Skripts stimme ich TRex zu. Ausser das man die Ziffern und die Gleichung angeben muss ist ja nichts enthalten. Ich finde es schon eindrucksvoll, dass Prolog daraus die Lösung ermittelt. Unschön ist mit Sicherheit nur die plumpe Art und Weise, in der ich die Ziffern angegeben habe. Das geht bestimmt eleganter. Ich habe nur noch keine Ahnung, wie man das schöner machen kann.
Von Ruby habe ich keine Ahnung. Ich habe mal von Ruby-on-Rails gehört. Das war es dann aber auch.
Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e
Re: Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e
Vielleicht ist das hier minimal schöner?chrbr hat geschrieben:19.12.2024 21:50:15Zur Komplexität des Prolog Skripts stimme ich TRex zu. Ausser das man die Ziffern und die Gleichung angeben muss ist ja nichts enthalten. Ich finde es schon eindrucksvoll, dass Prolog daraus die Lösung ermittelt. Unschön ist mit Sicherheit nur die plumpe Art und Weise, in der ich die Ziffern angegeben habe. Das geht bestimmt eleganter. Ich habe nur noch keine Ahnung, wie man das schöner machen kann.
Code: Alles auswählen
werte([1, 2, 3, 6, 10, 11, 13]).
formel(A, B, C, D, E, F, G) :-
25 is ((((A+5)*9+B-12)/C-D+8+7)/4+E-F)/G.
tst(A, B, C, D, E, F, G) :-
werte(Werte),
member(A, Werte),
member(B, Werte),
member(C, Werte),
member(D, Werte),
member(E, Werte),
member(F, Werte),
member(G, Werte),
is_set([A, B, C, D, E, F, G]),
formel(A, B, C, D, E, F, G).
Re: Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e
Ja, das ist schon ein ganzes Stück kompakter. Danke!
Re: Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e
Ja, nun ist der syntaktische Overhead geschrumpft und die Lesbarkeit gestiegen. Danke.Liffi hat geschrieben:20.12.2024 06:17:06Vielleicht ist das hier minimal schöner?chrbr hat geschrieben:19.12.2024 21:50:15Zur Komplexität des Prolog Skripts stimme ich TRex zu. Ausser das man die Ziffern und die Gleichung angeben muss ist ja nichts enthalten. Ich finde es schon eindrucksvoll, dass Prolog daraus die Lösung ermittelt. Unschön ist mit Sicherheit nur die plumpe Art und Weise, in der ich die Ziffern angegeben habe. Das geht bestimmt eleganter. Ich habe nur noch keine Ahnung, wie man das schöner machen kann.Code: Alles auswählen
werte([1, 2, 3, 6, 10, 11, 13]). formel(A, B, C, D, E, F, G) :- 25 is ((((A+5)*9+B-12)/C-D+8+7)/4+E-F)/G. tst(A, B, C, D, E, F, G) :- werte(Werte), member(A, Werte), member(B, Werte), member(C, Werte), member(D, Werte), member(E, Werte), member(F, Werte), member(G, Werte), is_set([A, B, C, D, E, F, G]), formel(A, B, C, D, E, F, G).
Use ed once in a while!