Permutations: Difference between revisions

Line 6,661:
4,3,1,2
4,3,2,1
</pre>
 
 
=={{header|Ring}}==
<lang ring>
 
Another Solution
 
// Permutations -- Bert Mariani 2020-07-12
// Ask User for number of digits to permutate
 
? "Enter permutations number : " Give n
n = number(n)
x = 1:n // array
? "Permutations are : "
count = 0
 
nPermutation(1,n) //===>>> START
? " " // ? = print
? "Exiting of the program... "
? "Enter to Exit : " Give m // To Exit CMD window
 
//======================
// Returns true only if uniq number on row
 
Func Place(k,i)
 
for j=1 to k-1
if x[j] = i // Two numbers in same row
return 0
ok
next
 
return 1
 
//======================
Func nPermutation(k, n)
 
for i = 1 to n
if( Place(k,i)) //===>>> Call
x[k] = i
if(k=n)
See nl
for i= 1 to n
See " "+ x[i]
next
See " "+ (count++)
else
nPermutation(k+1,n) //===>>> Call RECURSION
ok
ok
next
return
 
 
</lang>
Output:
<pre>
 
Enter permutations number :
4
Permutations are :
 
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1
Exiting of the program...
Enter to Exit :
 
</pre>
 
36

edits