Task

Write a program that generates all   permutations   of   n   different objects.   (Practically numerals!)



Related tasks
 
   Find the missing permutation
   Permutations/Derangements



 The number of samples of size k from n objects.


With   combinations and permutations   generation tasks. 






 Order Unimportant

 Order Important


 Without replacement








(


n
k


)




=

n



C

k


=



n
(
n
−
1
)
…
(
n
−
k
+
1
)


k
(
k
−
1
)
…
1





{\displaystyle {\binom {n}{k}}=^{n}\operatorname {C} _{k}={\frac {n(n-1)\ldots (n-k+1)}{k(k-1)\dots 1}}}










n



P

k


=
n
⋅
(
n
−
1
)
⋅
(
n
−
2
)
⋯
(
n
−
k
+
1
)


{\displaystyle ^{n}\operatorname {P} _{k}=n\cdot (n-1)\cdot (n-2)\cdots (n-k+1)}




Task: Combinations

Task: Permutations


 With replacement








(



n
+
k
−
1

k


)




=

n
+
k
−
1



C

k


=



(
n
+
k
−
1
)
!


(
n
−
1
)
!
k
!





{\displaystyle {\binom {n+k-1}{k}}=^{n+k-1}\operatorname {C} _{k}={(n+k-1)! \over (n-1)!k!}}








n

k




{\displaystyle n^{k}}




Task: Combinations with repetitions

Task: Permutations with repetitions



 
 
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
 
 
 