Wenn Du die Ausdrücke nicht
verstehen willst oder kannst, bleibt nur durchprobieren, d.h. wenigstens eine Lösung zu finden. Wobei die die Grenzen durch die Datentypen gesetzt sind, aber eigentlich unendlich sind. Grobkonzept, die gefundene Lösung wird verworfen:
Delphi-Quellcode:
type
TAusdruck = function (const X, Y: Cardinal): Boolean;
function LösungMöglich(const A1, A2: TAusdruck): Boolean;
var
X1, X2, Y1, X2: Cardinal;
begin
for X1 := Low(Cardinal) to High(Cardinal) do
for Y1 := Low(Cardinal) to High(Cardinal) do
for X2 := Low(Cardinal) to High(Cardinal) do
for Y2 := Low(Cardinal) to High(Cardinal) do
if A1(X1, Y1) and A2(X2, Y2) then
Exit(True);
Result := False;
end;