Основные определения, связанные со строками — различия между версиями
(→Отношения между строками) |
(→Отношения между строками) |
||
Строка 64: | Строка 64: | ||
{{Определение | {{Определение | ||
|id=period | |id=period | ||
− | |definition='''Период''' (англ. ''Period'') строки <tex>\alpha</tex> {{---}} число <tex>p</tex>: <tex>\forall i = 1 \ldots |\alpha| - p \alpha [i] = \alpha[i + p]</tex>. | + | |definition='''Период''' (англ. ''Period'') строки <tex>\alpha</tex> {{---}} число <tex>p</tex>: <tex>\forall i = 1 \ldots |\alpha| - p \alpha [i] = \alpha[i + p]</tex>. |
}} | }} | ||
Пусть <tex>\alpha = acaacaa</tex>, тогда <tex>p = 3</tex> {{---}} период строки <tex>\alpha = acaacaa</tex>. | Пусть <tex>\alpha = acaacaa</tex>, тогда <tex>p = 3</tex> {{---}} период строки <tex>\alpha = acaacaa</tex>. | ||
+ | |||
+ | {{Утверждение | ||
+ | |statement=Пусть известна строка <tex>\tau</tex> {{---}} период <tex>\alpha</tex> и <tex>|\alpha|</tex>, тогда можно восстановить всю строку <tex>\alpha</tex>. | ||
+ | |proof=Из определения периода строки следует, что <tex>\alpha[1...|\tau|] = \alpha[|\tau| + 1...2*|\tau|] = ... = \alpha[|\tau|*(k - 1) + 1...|\tau|*k] </tex>, где <tex>k = \lfloor\frac{|\alpha|}{|\tau|} \rfloor</tex>. Таким образом <tex>\alpha = \sum_{i=1}^{\lfloor\frac{|\alpha|}{|\tau|} \rfloor} \tau + \tau[1...|\alpha| mod |\tau|]</tex>. | ||
+ | }} | ||
+ | |||
{{Определение | {{Определение | ||
Строка 85: | Строка 91: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | Строка <tex>\alpha | + | Строка <tex>\alpha</tex> '''лексикографически меньше''' строки <tex>\beta</tex> (<tex>\alpha < \beta</tex>), если |
− | + | 1. <tex>\alpha</tex> {{---}} префикс <tex>\beta</tex> | |
− | + | ||
+ | ''или'' | ||
+ | |||
+ | 2. <tex> \mathcal {9} k\leqslant \min(|\alpha|, |\beta|): \alpha[k] < \beta[k] </tex> и при этом <tex> \mathcal {8} j < k ~\alpha_j = \beta_j </tex> | ||
}} | }} | ||
Версия 22:57, 9 июня 2014
Базовые определения
Определение: |
Символ (англ. Symbol) — объект, имеющий собственное содержание и уникальную читаемую форму. |
Определение: |
Алфавит (англ. Alphabet) | — непустое множество символов.
Примеры:
- — бинарный алфавит.
- — алфавит, лежащий в основе азбуки Морзе.
- — английский алфавит.
- — алфавит цифр.
- Нотные знаки
Определение: |
Нейтральный элемент — пустая строка | : . Для любой строки верно: .
Определение: |
Замыкание Клини (англ. Kleene closure) — унарная операция над множеством строк либо символов. Замыкание Клини множества | есть .
Если , то .
Определение: |
Цепочка (англ. Chain) — элемент конечной длины из | .
Определение: |
Конкатенация (англ. Concatenation) — бинарная, ассоциативная, некоммутативная операция, определённая на словах данного алфавита. Конкатецния строк | и является строка .
Определение: |
Моноид (англ. Monoid) — множество, на котором задана бинарная ассоциативная операция, обычно именуемая умножением, и в котором существует нейтральный элемент. | с операцией конкатенации и нейтральным элементом образуют моноид
Отношения между строками
Определение: |
Префикс (англ. Prefix) строки | — строка : .
Пусть , тогда — префикс .
Определение: |
Суффикс (англ. Suffix) строки | — строка : .
Пусть , тогда — суффикс .
Определение: |
Бордер (англ. Circumfix) строки | — строка : .
Пусть , тогда — бордер <tex\beta</tex>.
Определение: |
Период (англ. Period) строки | — число : .
Пусть , тогда — период строки .
Утверждение: |
Пусть известна строка — период и , тогда можно восстановить всю строку . |
Из определения периода строки следует, что | , где . Таким образом .
Определение: |
Строка | c периодом , называется сильнопериодической, если .
Строка является сильнопериодической с периодом .
Определение: |
Подстрока (англ. Substring) — некоторая непустая связная часть строки. |
Пусть , тогда — подстрока строки .
Определение: |
Строка 1. — префиксили 2. и при этом | лексикографически меньше строки ( ), если
Строка , так как является префиксом .
Строка
, так как .Смотри также
Литература
- Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — 2-е изд.
- Kelley, Dean (1995). Automata and Formal Languages: An Introduction. London: Prentice-Hall International. ISBN 0-13-497777-7.
- Gusfield, Dan (1999) [1997]. Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. USA: Cambridge University Press. ISBN 0-521-58519-8.