[Back to MATH SWAG index] [Back to Main SWAG index] [Original]
{
>it. While I'm at it, does anyone have any ideas For an algorithm to generate
>and test all possible combinations of a group of letters For Real Words.
I'm sure it wouldn't take long to modify this Program I wrote, which
produces all combinations of "n" numbers.
I got the idea from "Algorithms", by Robert Sedgewick. Recommended.
}
Program ShowPerms;
Uses
Crt;
Const
digits = 4; {How many digits to permute: n digits = n! perms!}
Var
PermArray : Array [1..digits] of Byte; {Permutation holder}
ThisDigit : Integer;
Procedure WritePerm;
Var
loop : Byte;
begin
For loop := 1 to 4 do
Write(PermArray[loop]);
Writeln;
end;
Procedure PermuteAtLevel(Level : Integer);
Var
loop : Integer;
begin
inc(ThisDigit);
PermArray[Level] := ThisDigit;
if ThisDigit = digits then
Writeperm; {if we've accounted For all digits}
For loop := 1 to digits do
if PermArray[loop] = 0 then
PermuteAtLevel(loop);
dec(ThisDigit);
PermArray[Level] := 0;
end;
begin
ClrScr;
ThisDigit := -1; {Left of Left-hand-side}
FillChar (PermArray, sizeof(PermArray),#0); {Make it zeroes}
PermuteAtLevel(0); {Start at the bottom}
end.
-
[Back to MATH SWAG index] [Back to Main SWAG index] [Original]