Witam. potrzebuje napisać program który w miare szybko będzie liczył jakie ciągi dziewięciocyfrowe powstaną z liczb od 1...9. cyfry w liczbie nie mogą się powtarzać. zatem będzie ich 9!. mam pomysł żeby generować i za każdym razem sprawdzać czy liczba jest na liście juz ale to bardzo czasochłonne(w sensie obciażające procesor) . ma ktoś jakiś pomysł?
0
0
const
n=9;
var
t:array[1..n] of longint;
procedure permute(k: longint);
var i, c:longint;
begin
if k=1 then begin
for i:=1 to n do
write(t[i]);
writeln;
end else begin
permute(k-1);
for i:=1 to k-1 do begin
c:=t[i]; t[i]:=t[k]; t[k]:=c;
permute(k-1);
c:=t[i]; t[i]:=t[k]; t[k]:=c
end;
end
end;
var i:longint;
begin
for i:=1 to n do
t[i]:=i;
permute(n);
end.