Hej.
Mam taki problem,
- dany jest zestaw znaków - "ABCD", z którego powstają dopuszczalne słowa
- słowa mają ustaloną długość n, dajmy na to n=3.
- mamy dane słowo początkowe, niech będzie to "ABA".
No i teraz :) Chciałbym wygenerować możliwie najprościej i możliwie najszybciej słowo oddalone od słowa początkowego o m pozycji. Co znaczy oddalone? Słowa powstają tutaj w dosyć naturalnym porządku, tj.
- AAA
- AAB
- AAC
- AAD
- ABA
- ABB
- ABC
- ABD
- ACA
- ...
Wg takiego podziału mamy: "ABA" + 3 = "ABD". Nie mam pomysłu jak do tego podejść, bez generowania po drodze niepotrzebnych słów (m może być duże...). Dodatkowo, takie fajerwerki jak next_permutation czy rekurencja odpadają ;) Preferowane jakieś C, ale i pseudokodem koncepcyjnym nie pogardzę :)