Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [algorytm] analogiczne ciągi znaków
Forum PHP.pl > Inne > Hydepark
Kabraxis
Czy jest komuś znany algorytm, który działa w poniżej opisany sposób?

Algorytm dostaje na wejście parę ciągów znaków, np.:
1) a b c;anna1;23.43
2) a bc;anna;23,43

ciąg 2) to zmodyfikowany tekst 1). Na wejście może być też zapodane x takich par.

Następnie algorytm dostaje na wejście ciągi 1) i ma sam zbudować z nich 2) na podstawie wzorca, z tym że cały problem polega na tym, że sam ma ten wzorzec wykryć.

PS. Tak wiem przykład nie jest najlepszy ale chodzi o idee. Powstał już taki algorytm poza sztuczną inteligencją?
everth
Nie jest to dokładnie odpowiedź na twoje pytanie - ale wydaje mi się że blisko.
nasty
O ile dobrze rozumiem pytanie i zadanie postawione przed algorytmem, to wydaję mi się, że najwygodniejszym (i zarazem najszybszym) algorytmem jaki można tu zatrudnić to jakiś oparty o automat skończony.

W tym automacie skończonym byś miał zdefiniowane stany takie jak:
  1. pierwszy_ciag
  2. imie
  3. zmienna_calkowita
  4. zmienna_przecinkowa


Po przeczytaniu kolejnego znaku, uruchamiasz funkcję przejścia która zmienia aktualny stan automatu na taki który odpowiada nowo przeczytanemu znakowi.
Potem tworzysz funkcje które są powiązane z danymi przejściami. Np. dla przejścia (1,3) => a(). (2, 4) => b() and so on...

Takie coś da Ci nie tylko dużą swobodę w manipulowaniu formatem (zmiena schematu sprowadza się tylko do zmiany diagramu stanów, bez ingerencji w kod) a jeszcze przy okazji dostaniesz walidację poprawności za free ;-)

http://pl.wikipedia.org/wiki/Automat_sko%C5%84czony
Ciebie raczej by interesowała Deterministyczna wersja tego automatu: http://pl.wikipedia.org/wiki/Deterministyc..._sko%C5%84czony
hwao
diff na stringach i "różniące się elementy" to operacje jakie musisz wykonać
nasty
Hwao, To będzie dużo wolniejsze, trudniejsze w zmianie i w ogóle z dupy ;-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.