Основные определения, связанные со строками

Материал из Викиконспекты
Версия от 00:07, 10 июня 2014; 88.201.136.78 (обсуждение) (Отношения между строками)
Перейти к: навигация, поиск

Базовые определения

Определение:
Символ (англ. Symbol) — объект, имеющий собственное содержание и уникальную читаемую форму.


Определение:
Алфавит (англ. Alphabet) Σ — непустое множество символов.


Примеры:

  • Σ={0,1} — бинарный алфавит.
  • Σ={,} — алфавит, лежащий в основе азбуки Морзе.
  • Σ={a,b,c,d,...,z} — английский алфавит.
  • Σ={0,1,2,...,9} — алфавит цифр.
  • Нотные знаки


Определение:
Нейтральный элемент — пустая строка ε: εΣ0. Для любой строки αΣk верно: αε=εα=α.


Определение:
Замыкание Клини (англ. Kleene closure) — унарная операция над множеством строк либо символов. Замыкание Клини множества Σ есть Σ:Σ=n=0Σn.


Если Σ={0,1}, то Σ={ε,0,1,00,01,10,11,000,001,010,011,...}.


Определение:
Цепочка (англ. Chain) — элемент конечной длины из Σ.


Определение:
Конкатенация (англ. Concatenation) — бинарная, ассоциативная, некоммутативная операция, определённая на словах данного алфавита. Конкатецния строк αΣk и βΣm является строка αβΣk+m.


Определение:
Моноид (англ. Monoid) — множество, на котором задана бинарная ассоциативная операция, обычно именуемая умножением, и в котором существует нейтральный элемент. Σ с операцией конкатенации и нейтральным элементом ε образуют моноид


Отношения между строками

Определение:
Префикс (англ. prefix) строки β — строка α: β=αγ.


Пусть β=abr_acadabra, тогда α=abr — префикс β.


Определение:
Суффикс (англ. suffix) строки β — строка α: β=γα.


Пусть β=abracadabra_, тогда α=bra — суффикс β.


Определение:
Бордер (англ. circumfix) строки β — строка α: β=γα=αη.


Пусть β=abra_cadabra_, тогда α=abra — бордер <tex\beta</tex>.


Определение:
Период (англ. period) строки α — число p: i=1|α|p,α[i]=α[i+p].


Пусть α=acaacaa, тогда p=3 — период строки α=acaacaa.

Утверждение:
Пусть известна строка τ — период α и |α|, тогда можно восстановить всю строку α.
Из определения периода строки следует, что α[1...|τ|]=α[|τ|+1...2|τ|]=...=α[|τ|(k1)+1...|τ|k], где k=|α||τ|. Таким образом α=|α||τ|i=1τ+τ[1...|α|mod|τ|].


Определение:
Строка αε c периодом p|α|, называется сильнопериодической, если |α|modp=0.


Строка α=acaacaaca является сильнопериодической с периодом p=3.


Определение:
Подстрока (англ. substring) — некоторая непустая связная часть строки.


Пусть β=abraca_dabra, тогда α=aca — подстрока строки β.


Определение:
Строка α лексикографически меньше строки β (α<β), если

1. α — префикс β

или

2. 9kmin(|α|,|β|):α[k]<β[k] и при этом 8j<k αj=βj


Строка α=aca<β=acaaba, так как является префиксом β.

Строка α=acaa<β=acab, так как a<b.

Смотри также

Период и бордер, их связь

Слово Фибоначчи

Слово Туэ-Морса

Литература

  • Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — 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.