Układanie wyrazów

Permutacje. Kombinacje. Wariacje. Rozmieszczanie kul w urnach. Silnie i symbole Newtona. Przeliczanie zbiorów. Funkcje tworzące. Teoria grafów.
asdasd666
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 1 gru 2014, o 15:45
Płeć: Mężczyzna
Lokalizacja: wawa

Układanie wyrazów

Post autor: asdasd666 »

Witam. Mam za zadanie wymyślić algorytm który ciąg z literami P,I,E,S uporządkuje w ten sposób aby utworzyć wyrazy PIES. Np mam PPIIEESS i musimy ułożyć PIESPIES. Do dyspozycji mam tylko jeden typ przełożenia - czwórka(dokładnie i tylko czwórka) znaków z dowolnego miejsca obok siebie na koniec ciągu. Więc ciąg wyjściowy to jak najwięcej słów PIES oraz ewentualne śmieci na prawym końcu ciągu. Jedyne co przychodzi mi na razie do głowy to brute force czyli takie przekładanie aż otrzymamy wszystkie układy. Ale nawet przy tej metodzie nie wiem jaki mógłby być warunek końca, tzn ile np jest wszystkich możliwości mając tylko tą jedną operacje przełożenia? Jakby był ktoś tak miły i spróbował nakierować mnie na jakieś rozwiązanie to byłbym bardzo wdzięczny. Proszę o pomoc. Pozdrawiam.
Everard
Użytkownik
Użytkownik
Posty: 166
Rejestracja: 11 lip 2007, o 22:59
Płeć: Mężczyzna
Lokalizacja: Bytom
Pomógł: 49 razy

Układanie wyrazów

Post autor: Everard »

Jesteś pewien że rozwiązanie w ogóle zawsze istnieje? Jeżeli nasz startujący ciąg to PEISP, iterując Twoją operację w jedyny możliwy sposób dostajemy
PPEIS
SPPEI
ISPPE
EISPP
PEISP

więc nigdy nie dostajemy nigdzie PIES...
asdasd666
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 1 gru 2014, o 15:45
Płeć: Mężczyzna
Lokalizacja: wawa

Układanie wyrazów

Post autor: asdasd666 »

Masz racje rozwiązanie nie zawsze istnieje ( algorytm ma to uwzględniać ). Masz może jakiś pomysł? Jedyne co mi przychodzi to głowy to sprawdzanie kolejnych liter, jesli jest zle to przekładamy. Ale też nie za bardzo wiem kiedy się zatrzymać. Co więcej czy jeśli tak postępując i już na drugiej pozycji nie uda mi się ustawić wymaganej litery tzn ze w ogóle się nie da ? Ciężko mi z tym idzie...
asdasd666
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 1 gru 2014, o 15:45
Płeć: Mężczyzna
Lokalizacja: wawa

Układanie wyrazów

Post autor: asdasd666 »

Hmm.. Jako że dalej borykam się z tym problemem to mam takie pytanie bardziej ogólne. Ile jest wszystkich możliwych ciągów ( niekoniecznie różnych - tzn ten sam ciąg otrzymany w inny sposób jest rozróżnialny ) jakie możemy otrzymać przy pomocy tej operacji dla ciągu rozmiaru n ?
dla n = 4 mamy 1
dla n = 5 mamy 5
dla n = 6 ... ?
ODPOWIEDZ