apua permutaation kanssa

Seuraa 
Viestejä45973
Liittynyt3.9.2015

apua apua

Haluaisin tehdä algoritmin, joka ulostaa kaikki mahdolliset permutaatiot jostain kokonaislukujen joukosta?

Katsoin wikipediasta apua mutta en oikein ymmärtänyt!? voisiko joku auttaa

Kommentit (1)

pöhl
Seuraa 
Viestejä875
Liittynyt19.3.2005

Eräs vaihtoehto on rekursio.
pseudokoodina
Perm ({a_1,...,a_n})
Jos n<0 tulosta virhe.
Jos n=0 tulosta tyhjä joukko
Jos n=1, tulosta a_1.
Jos n>1,
tulosta a_1 + tulosta Perm({a_2,...,a_n})
tulosta a_2 + tulosta Perm({a_1,a_3,...,a_n})
...
tulosta a_n + tulosta Perm({a_1,...,a_{n-1}})

Permutaatioiden lukumäärä on nopeasti kasvava funktio, joten toteutit algoritmin miten tahansa, sen suoritus kestää varsin pienilläkin joukoilla kauan.

Jos käytät C++:aa, voit ottaa käyttöön funktion next_perm (tjsp). Tällä voit kätevästi tulostaa kaikki permutaatiot muutaman rivin koodilla.

Uusimmat

Suosituimmat