infoarena

infoarena - concursuri, probleme, evaluator, articole => Teme => Subiect creat de: Marian Lucian din Octombrie 04, 2010, 20:06:07



Titlul: Problema backtracking
Scris de: Marian Lucian din Octombrie 04, 2010, 20:06:07
Salut tuturor!
Mentionez ca sunt nou pe acest site si imi cer scuze daca nu am postat unde trebuie.
Ma tot gandesc la o problema de backtracking, dar nu reusesc s-o rezolv.
Enunt: Sa se genereze toate sirurile de lungime n formate din literele A si M, siruri care sa nu aiba 2 litere A alaturate.
pt n=5 => AMAMM
              AMAMA
              AMMMA
              MMMMM
Scuzati de deranj. :)


Titlul: Răspuns: Problema backtracking
Scris de: Sima Cotizo din Octombrie 04, 2010, 23:01:06
Trebuia sa postezi in "Teme", pentru ca sunt sigur ca problema o ai la tema :)

Dupa cum faci backtrackingul (presupun ca ai un fel de "stiva" pe care o denumesti sa zicem St), in functia ta normala de backtrack adaugi conditia:
Cod:
daca i>1 si St[i]=='A' si St[i-1]=='A' atunci [Nu continui backtrackingul / te intorci]
In bucata de cod, i reprezinta nivelul actual din back (nu stiu daca il faci iterativ sau recursiv, dar tot aceeasi semnificatie are variabila).


Titlul: Răspuns: Problema backtracking
Scris de: Savin Tiberiu din Octombrie 04, 2010, 23:48:28
Mi se pare ca ar trebui sa fie mai multe siruri ptr n=5 de ex sirul MAMAM respecta conditiile din enunt.