Pytanie : C++ permutacja z zastępstwo algorytm

I patrzeć dla algorytm który wytwarzać, w jakaś rozkaz, wszystkie permutacja "n" rzecz wybierać od "m" rzecz Z ZASTĘPSTWO (i.e m wybierać n z zastępstwo).  Tam  być m^n permutacja w total.

so wszystko (3^2 = 9) permutacja 2 rzecz z zastępstwo od the 3 rzecz", "B", "c" być:

aa
ab
ba
bb
cc
ac
ca
bc
cb

This zagadnienie adresować bez zastępstwo w:

http://www.experts-exchang e.com/Prog ramming/Languages/CPP/Q_10291490.html

I potrzeba ono z replacement.

Odpowiedź : C++ permutacja z zastępstwo algorytm

Tutaj być algorytm dla permutacja z zastępstwo. I modyfikować kod od:
       http://en.wikipedia.org/wiki/Itoa

Problem gotować się puszek radix problem. Jeżeli ty mieć set {a, B, c, D, e} i 3 szczelina, then ty mieć 5^3 radix liczba: aaa, aab, aac, aad, aae, aba,…. Wszystkie ewentualny unikalny wynik, ty móc a + operator tak, że a+1 --> B

e+1 --> a z nieść tak, że, na przykład:
abe + (1) --> aca


The wydajność być:
Element # Radix Liczba
    (1) 00
    2 10
    3 20
    4 01
    5 11
    6 21
    7 02
    8 12
    9 22
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
#include  
#include  
#include  

const int N_ITEMS = 8;
const int M_SLOTS = 3;
const niepodpisany int nPerms = int (  pow (pławik (N_ITEMS), pławik (M_SLOTS)) );

 kawitacyjny intToRadix (niepodpisany int n, char * str, int baza)
 {
     int i=0;
     memset (str, "(0)", M_SLOTS);
     str [M_SLOTS] = "\ (0)";
     {
         str [i++] = n % baza + "(0)";
     } podczas gdy ((n/= baza) > (0));
 }

int magistrala ()
{
   char strPerm [M_SLOTS+1];
   printf ("Element #    Radix Liczba \ n");
   dla (niepodpisany int permNum = (0); permNum  < nPerms="">
           
Inne rozwiązania  
 
programming4us programming4us