Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e

Smalltalk
chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e

Beitrag von chrbr » 19.12.2024 21:50:15

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.

Liffi
Beiträge: 2344
Registriert: 02.10.2004 01:33:05

Re: Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e

Beitrag von Liffi » 20.12.2024 06:17:06

chrbr hat geschrieben: ↑ zum Beitrag ↑
19.12.2024 21:50:15
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.
Vielleicht ist das hier minimal schöner?

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).

chrbr
Beiträge: 623
Registriert: 29.10.2022 15:53:26

Re: Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e

Beitrag von chrbr » 20.12.2024 08:52:01

Liffi hat geschrieben: ↑ zum Beitrag ↑
20.12.2024 06:17:06
Vielleicht ist das hier minimal schöner?
Ja, das ist schon ein ganzes Stück kompakter. Danke!

Benutzeravatar
Meillo
Moderator
Beiträge: 9224
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Adventskalender 18. Dezember 2024 - R?ch??s??l?n?e

Beitrag von Meillo » 20.12.2024 09:45:13

Liffi hat geschrieben: ↑ zum Beitrag ↑
20.12.2024 06:17:06
chrbr hat geschrieben: ↑ zum Beitrag ↑
19.12.2024 21:50:15
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.
Vielleicht ist das hier minimal schöner?

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).
Ja, nun ist der syntaktische Overhead geschrumpft und die Lesbarkeit gestiegen. Danke.
Use ed once in a while!

Antworten