Seuraa 
Viestejä45973

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

  • ylös 0
  • alas 0

Kommentit (1)

pöhl
Seuraa 
Viestejä1000

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.

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla

Suosituimmat

Uusimmat

Sisältö jatkuu mainoksen alla

Suosituimmat