ich war der Meinung, dass es hierbei einen mathemetischen "Trick" gibt.
Es geht nur Brute Force; man könnte aber darauf achten dass zuerst wahrscheinliche Kombinationen von Operatoren getestet werden um möglichst schnell eine Lösung zu finden.
Zwei oder mehr gleiche Operatoren hintereinander würde ich als unwahrscheinlich bezeichnen.
Die Reihenfolge wie ein Operator getestet wird hängt also vom Vorgängeroperator ab.
Delphi-Quellcode:
function CalcNextOperators(previousOp:char):string;
begin
case preOp of
'+': Result := '-*/+';
'-': Result := '+*/-';
'*': Result := '+-/*';
'/': Result := '+-*/;
else
Result := '+-*/';
end;
end;
Ausserdem kann man Divisionen ausschliesen bei denen ein ganzzahliger Rest übrigbleiben würde.
Jede Division, die man ausschliesen kann, reduziert die Anzahl der Tests um den Faktor 3/4.
Bei deinem Beispiel wäre nur 8 /4 möglich; also kann man 3 Divisionen ausschliesen.