/ Konštrukcia z mnohých množín - algoritmus, kombinácie, permutácia

Konštrukcia z mnohých množín - algoritmus, kombinácie, permutácia

Mám štyri sady:

A={a,b,c}, B={d,e}, C={c,d}, D={a,b,c,e}

Chcem prehľadávať sled súborov, ktoré mi dávajú: a b c d

Príklad: postupnosť A A A C môže mi dať a b c d pretože „a“ je prvkom A, „b“ je prvkom A, „c“ je prvkom A a „d“ je prvkom C.

To isté pre: D A C B atď.

Chcem, aby algoritmus vymenoval všetky možné sekvencie alebo matematickú metódu na nájdenie sekvencií.

odpovede:

0 pre odpoveď č. 1

Mali by ste skutočne prísť s nejakým vlastným kódom a potom položiť konkrétne otázky o problémoch s ním. Ale je to zaujímavé, takže sa podelím o nejaké myšlienky.

Chceš a b c d.

a can come from A, D
b can come from A, D
c can come from A, C, D
d can come from B, C

Problém sa teda obmedzuje na nájdenie všetkých 2 * 2 * 3 * 2 = 24 spôsobov, ako tieto možnosti skombinovať.

Jedným zo spôsobov je rekurzia so spätným sledovaním. Zostavte ju zľava doprava, výstup, keď máte kompletnú sadu. Rovnako ako problém 8 kráľovien, ale oveľa jednoduchší, pretože všetko je nezávislé.

Ďalším spôsobom je spočítať celé čísla a zmapovať ichdo zmiešaného systému. Prvá číslicová základňa 2, potom 2, 3, 2. Takže 0 sa stáva AAAB, 1 je AAAC, 2 je AACB atď. 23 je DDDC a 24 potrebuje päť číslic, aby ste sa tam zastavili.