Pergunta : Permutação de C++ com algoritmo da recolocação

Eu estou procurando um algoritmo que gere, em toda a ordem, todas as permutações dos artigos de “n” escolhidos dos artigos de “m” COM RECOLOCAÇÃO (isto é m escolhe n com recolocação).  Haverá umas permutações do m^n em total.

so todas as (3^2 = 9) permutações de 2 artigos com recolocação dos 3 artigos “a”, “b”, “c” está: a edição do

aa
ab
ba
bb
cc
ac
ca
bc
cb

This foi endereçada sem recolocação em: href= " http://www.experts-exchange.com/Programming/Languages/CPP/Q_10291490.html " do

necessidade do ramming/Languages/CPP/Q_10291490.html

I do e.com/Prog de http://www.experts-exchang ele com replacement.
class= do

Resposta : Permutação de C++ com algoritmo da recolocação

Está aqui um algoritmo para permutações com recolocação. Eu modifiquei o código de:
       http://en.wikipedia.org/wiki/Itoa

Isto ferve para baixo a um problema da raiz. Se você tem um jogo {a, b, c, d, e} e 3 entalhes, a seguir você tem números da raiz 5^3: aaa, aab, aac, DAA, aae, aba,…. Para começ todos os resultados originais possíveis, você pode ter a + operador de modo que a+1 --> b

e+1 --> a com carreg de modo que, por exemplo:
abe + 1 --> ACA


A saída é:
Número do elemento # da raiz
    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;
nPerms não assinados do int do const = int (  prisioneiro de guerra (flutuador (N_ITEMS), flutuador (M_SLOTS)) );

 intToRadix vago (int não assinado n, carvão animal * estreptococo, base do int)
 {
     int i=0;
     memset (estreptococo, “0”, M_SLOTS);
     estreptococo [M_SLOTS] = “\ 0”;
     fazer {
         estreptococo [i++] = % da base de n + “0”;
     } quando ((base de n/=) > 0);
 }

cano principal do int ()
{
   strPerm do carvão animal [M_SLOTS+1];
   printf (do “número elemento    # da raiz \ n”);
   para (permNum não assinado do int = 0; permNum  < nPerms="">
           
Outras soluções  
 
programming4us programming4us