Jump to content

Permutations: Difference between revisions

Add XPL0 ... and fix a typo or two
m (→‎version 2: changed section header comment (added ''taken'' to the text). -- ~~~~)
(Add XPL0 ... and fix a typo or two)
Line 1:
{{task|Discrete math}}
Write a program whichthat generates the all [[wp:Permutation|permutations]] of '''n''' different objects. (Practically numerals!)
;C.f.
* [[Find the missing permutation]]
Line 2,589:
permute 10,False
Number of permutations: 3628800
</pre>
 
=={{header|XPL0}}==
<lang XPL0>code ChOut=8, CrLf=9;
def N=4; \number of objects (letters)
char S0, S1(N);
 
proc Permute(D); \Display all permutations of letters in S0
int D; \depth of recursion
int I, J;
[if D=N then
[for I:= 0 to N-1 do ChOut(0, S1(I));
CrLf(0);
return;
];
for I:= 0 to N-1 do
[for J:= 0 to D-1 do \check if object (letter) already used
if S1(J) = S0(I) then J:=100;
if J<100 then
[S1(D):= S0(I); \object (letter) not used so append it
Permute(D+1); \recurse next level deeper
];
];
];
 
[S0:= "rose "; \N different objects (letters)
Permute(0); \(space char avoids MSb termination)
]</lang>
 
Output:
<pre>
rose
roes
rsoe
rseo
reos
reso
orse
ores
osre
oser
oers
oesr
sroe
sreo
sore
soer
sero
seor
eros
erso
eors
eosr
esro
esor
</pre>
772

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.