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ď č. 1Mali 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.