Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.
Avatar
Honza
Neregistrovaný
Avatar
Honza:

Dobrý den,

chtěl bych se zeptat jestli neexistuje nějáký algoritmus jak proházet prvky pole na všechny možné způsoby.

například mám pole:

String[] pole = new String[] {"A", "B", "C", "D"};

a potřebuji algoritmus co mi vypíše všechny možnosti jak je prohodit.
Takže něco jako tohle:
ABCD
ABDC
ACDB
ACBD
ADBC
ADCB
...
a tak dál.

 
Odpovědět 8.12.2013 14:11
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Honza
Hartrik:

To co hledáš jsou permutace, neměl by být problém vygůglit si algoritmus.

 
Nahoru Odpovědět  +2 8.12.2013 14:59
Avatar
neutr
Člen
Avatar
neutr:

Permutace je celkem vágní pojem ačkoliv je správný. Tento případ je Faktoriál. Je tady více návodů i nějaký kód.

PS : Dnes je permutacemi vše co nejsou kombinace. Když bys Honzo potřeboval například jen čtyřmístné "kombinace" z celku > 4 jednalo by se o "variace bez opakování". Například V(6,4) - variace bez opakování 4. třídy celku 6.

Opačně variace bez opakování kde k=n V(n,n) = také n! = také permutace (tak jak byly definovány původně P(n)= n!).

Editováno 27.12.2016 17:57
 
Nahoru Odpovědět 27.12.2016 17:55
Avatar
Štefan Melich:

majú byť tie kombinácie prvkov poľa o dĺžke pola (v tomto prípade 4 prvkové), alebo aj všetky 3, prvkové 2, 1...?

Editováno 27.12.2016 18:37
 
Nahoru Odpovědět 27.12.2016 18:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.