Registriert seit: 16. Mär 2004
2.287 Beiträge
|
Re: Alle "logischen Möglichkeiten" auflisten
18. Apr 2005, 17:03
wie wäre es damit?(getestet)
Delphi-Quellcode:
function GetKombi(ValCount: Integer): TStringList;
var Temp: TStringList;
procedure kombiRec(index, max: Integer; vals: String);
var i:Integer;
begin
for i:=1 to 2 do
if index<max then
kombirec(index+1,max,vals+IntToStr(i))
else Temp.Add(vals+IntToStr(i));
end;
begin
Temp:=TStringList.Create;
KombiRec(1,ValCount,'');
Result:=TStringList.Create;
Result.Clear;
Result.AddStrings(Temp);
Temp.Free;
end;
und nun ausgabe mit w/f statt 1/2:
Delphi-Quellcode:
function GetKombi(ValCount: Integer): TStringList;
var Buf: TMemoBuf;
procedure kombiRec(index, max: Integer; vals: String);
var i:Integer;
begin
for i:=1 to 2 do
if index<max then
kombirec(index+1,max,vals+IntToStr(i))
else Result.Add(vals+IntToStr(i));
end;
begin
Result:=TStringList.Create;
Result.Clear;
KombiRec(1,ValCount,'');
Buf:=TMemoBuf.Create;
Buf.Append(Result.Text);
Buf.ReplaceAll('1','w');
Buf.ReplaceAll('2','f');
Result.Clear;
Result.Add(Buf.Text);
end;
»Unlösbare Probleme sind in der Regel schwierig...«
|
|
Zitat
|