tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
37
Task/Permutations/Seed7/permutations.seed7
Normal file
37
Task/Permutations/Seed7/permutations.seed7
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
$ include "seed7_05.s7i";
|
||||
|
||||
const type: permutations is array array integer;
|
||||
|
||||
const func permutations: permutations (in array integer: items) is func
|
||||
result
|
||||
var permutations: permsList is 0 times 0 times 0;
|
||||
local
|
||||
const proc: perms (in array integer: sequence, in array integer: prefix) is func
|
||||
local
|
||||
var integer: element is 0;
|
||||
var integer: index is 0;
|
||||
begin
|
||||
if length(sequence) <> 0 then
|
||||
for element key index range sequence do
|
||||
perms(sequence[.. pred(index)] & sequence[succ(index) ..], prefix & [] (element));
|
||||
end for;
|
||||
else
|
||||
permsList &:= prefix;
|
||||
end if;
|
||||
end func;
|
||||
begin
|
||||
perms(items, 0 times 0);
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
var array integer: perm is 0 times 0;
|
||||
var integer: element is 0;
|
||||
begin
|
||||
for perm range permutations([] (1, 2, 3)) do
|
||||
for element range perm do
|
||||
write(element <& " ");
|
||||
end for;
|
||||
writeln;
|
||||
end for;
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue