Elikkä en oikein saanut mitään aikaiseksi, kun yritin tehdä ns. "mahdollisuuslaskimen".
Jos jotain valmista koodia niin voi laittaa tänne.
Eli sen pitäisi toimia suunnilleen näin:
Ja tulostuksen pitäisi olla suunnilleen:
Array( [0]=AB [1]=BA )
ootko kokeillu esim. sisäkkäisillä for -loopeilla käydä arrayn soluja läpi. Olisikos semmosesta aluksi jotain hyötyä?
Sitten kun olet sen tehnyt, kokeile miten voisi estää esim. tulostuksen jos kaksi samaa kirjainta on peräkkäin yms.
Tarkoitatko "mahdollisuuksilla" annettujen elementtien erilaisia järjestyksiä eli permutaatioita?
Joukon alkioiden permutaatiot voi generoida näin:
http://en.wikipedia.org/wiki/Permutation#Numbering_permutations
Jos tarkoitit jotakin muuta tai taulukossa voi olla identtisiä elementtejä, niin tuo algoritmi ei sellaisenaan kelpaa. Vastaus kysymykseesi löytyy joka tapauksessa kombinatoriikan avulla.
EDIT: Jos haluat ainoastaan laskea vaihtoehtojen määrän, on tehtävä huomattavasti helpompi. Permutaatioiden määrä on n! / Πi ai!, missä n on taulukon koko ja ai alkion i kopioiden määrä taulukossa. Alkioden määrän kertoma siis jaetaan jokaisen erilaisen alkoin kopioiden määrän kertomalla.
joo nyt sain toimimaan
Aihe on jo aika vanha, joten et voi enää vastata siihen.