Основные определения, связанные со строками — различия между версиями
(→Отношения между строками) |
(→Отношения между строками) |
||
| Строка 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.