Добрый день,
алгоритм записывается с помощью двух предикатов:
1)
![$P(i,j) = Ak:j<=k<M:s(i-j+k) = pk$ $P(i,j) = Ak:j<=k<M:s(i-j+k) = pk$](https://dxdy-04.korotkov.co.uk/f/7/8/b/78b7a4a77882049a060f4919f7bb4f8a82.png)
2)
![$Q(i) = Ak:0<=k<i: NOT P(i,0)$ $Q(i) = Ak:0<=k<i: NOT P(i,0)$](https://dxdy-02.korotkov.co.uk/f/d/b/d/dbde7294cf07b9e1fef3e863f11e00ae82.png)
здесь
p -- искомая подстрока
s -- текст, в котором ищем
M -- длина p
что обозначают символы j и i ?
-- Чт июл 16, 2009 13:23:18 --модераторов просьба перенести тему в Computer Science
опять я у вас тут запутался...
Надо чаще заглядывать чтоли
-- Чт июл 16, 2009 14:46:12 --Если предположить что
![$i$ $i$](https://dxdy-04.korotkov.co.uk/f/7/7/a/77a3b857d53fb44e33b53e4c8b68351a82.png)
обозначает индекс первого совпадения в строке
![$s$ $s$](https://dxdy-03.korotkov.co.uk/f/6/f/9/6f9bad7347b91ceebebd3ad7e6f6f2d182.png)
то тогда не совсем понятен смысл
![$j$ $j$](https://dxdy-04.korotkov.co.uk/f/3/6/b/36b5afebdba34564d884d347484ac0c782.png)
в свете того, что
![$j<=k< M$ $j<=k< M$](https://dxdy-02.korotkov.co.uk/f/5/9/6/596eef98c4474a27c0c4ecb0c27816f382.png)
, т.е.
![$j<=M$ $j<=M$](https://dxdy-01.korotkov.co.uk/f/0/7/7/077ada5ce7a08dd3e20b1770179eb1f582.png)
а
![$M$ $M$](https://dxdy-04.korotkov.co.uk/f/f/b/9/fb97d38bcc19230b0acd442e17db879c82.png)
это длина искомой подстроки.
Если
![$j$ $j$](https://dxdy-04.korotkov.co.uk/f/3/6/b/36b5afebdba34564d884d347484ac0c782.png)
обозначает количество совпадающих символов, тогда значение
![$k$ $k$](https://dxdy-03.korotkov.co.uk/f/6/3/b/63bb9849783d01d91403bc9a5fea12a282.png)
из предиката (1) не будет принимать никакого значения.
Если же
![$j$ $j$](https://dxdy-04.korotkov.co.uk/f/3/6/b/36b5afebdba34564d884d347484ac0c782.png)
обозначает последний индекс строки
![$s$ $s$](https://dxdy-03.korotkov.co.uk/f/6/f/9/6f9bad7347b91ceebebd3ad7e6f6f2d182.png)
где есть совпадение, то тогда отношение
![$j<=k< M$ $j<=k< M$](https://dxdy-02.korotkov.co.uk/f/5/9/6/596eef98c4474a27c0c4ecb0c27816f382.png)
может быть несправедливо для некоторых строк, например для текста
Код:
text123456
и искомой подстроки
Код:
123
![$j = 7$ $j = 7$](https://dxdy-03.korotkov.co.uk/f/a/5/b/a5b9fddde4623f06b52aacc65e6c45b482.png)
,
![$M=3$ $M=3$](https://dxdy-01.korotkov.co.uk/f/c/a/e/caebfe10e001be633bb0854921be224382.png)