Einfach geht nicht, trotz Brute Force, denn das kleine Beispiel ist zwar ok, beachtet aber kein Punkt vor Strich. Deshalb führt es nicht zum Erfolg. Letztendlich kommt man um einem Mathparser der die Komplettformel richtig berechnet nicht herum.
Delphi ist dafür auch wirklich nicht geeignet.
Prolog auch nicht, mMn. Lösung in Python, hat ca. 2 Minuten gedauert.
Code:
e = 31
s = ["7.0", "5.0", "3.0", "8.0", "4.0"]
o = [" + ", " - ", " * ", " / "]
for a in o:
for b in o:
for c in o:
for d in o:
t = s[0] + a + s[1] + b + s[2] + c + s[3] + d + s[4]
if eval(t) == e:
print t.replace(".0", "") + " = " + str(e)
Liebe Grüße,
Valentin