Permutations: Difference between revisions
Content added Content deleted
m (→AppleScript :: Non-recursive: tidied) |
|||
Line 6,661: | Line 6,661: | ||
4,3,1,2 |
4,3,1,2 |
||
4,3,2,1 |
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> |
</pre> |
||