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

Материал из Викиконспекты
Перейти к: навигация, поиск
(Отношения между строками)
Строка 30: Строка 30:
 
}}
 
}}
  
Пусть <tex>\beta = abracadabra</tex>, тогда
+
Пусть <tex>\beta = \underline{abr}acada\underline{bra}</tex>, тогда
*если <tex>\alpha = abrac</tex>, то <tex>\alpha</tex> является префиксом <tex>\beta</tex>
+
*если <tex>\alpha = abr</tex>, то <tex>\alpha</tex> является префиксом <tex>\beta</tex>
*если <tex>\alpha = adabra</tex>, то суффиксом.
+
*если <tex>\alpha = bra</tex>, то суффиксом.
  
 
{{Определение
 
{{Определение
Строка 40: Строка 40:
 
}}
 
}}
  
Пусть <tex>\beta = abracadabra</tex>, тогда <tex>\alpha = abra</tex> будет бордером <tex>\beta</tex>.
+
Пусть <tex>\beta = \underline{abra}cad\underline{abra}</tex>, тогда <tex>\alpha = abra</tex> будет бордером <tex>\beta</tex>.
  
 
{{Определение
 
{{Определение
 
|definition =
 
|definition =
<tex>p</tex> называется '''периодом''' <tex>\alpha</tex>, если <tex>\forall i = 1 \ldots n - p</tex> <tex>\alpha [i] = \alpha[i + p]</tex>.
+
<tex>p</tex> называется '''периодом''' <tex>\alpha</tex>, если <tex>\forall i = 1 \ldots [n / p] * p - p \quad</tex> <tex>\alpha [i] = \alpha[i + p]</tex>.
 
|id=border
 
|id=border
 
}}
 
}}
 +
 +
Строка <tex>\alpha = acaacab</tex> является сильнопериодической (<tex>p = 3</tex>).
  
 
{{Определение
 
{{Определение
Строка 52: Строка 54:
 
Строка <tex>\alpha</tex> называется сильнопериодической, если <tex>n</tex> <tex>mod</tex> <tex>p = 0</tex>.
 
Строка <tex>\alpha</tex> называется сильнопериодической, если <tex>n</tex> <tex>mod</tex> <tex>p = 0</tex>.
 
}}
 
}}
 +
 +
Строка <tex>\alpha = acaacaaca</tex> является сильнопериодической (<tex>p = 3</tex>).
  
 
{{Определение
 
{{Определение
Строка 58: Строка 62:
 
}}
 
}}
  
Строка <tex>\alpha = aca</tex> является подстрокой <tex>\beta = abracadabra</tex>.
+
Строка <tex>\alpha = aca</tex> является подстрокой <tex>\beta = abr\underline{aca}dabra</tex>.
  
 
{{Определение
 
{{Определение
Строка 66: Строка 70:
 
* <tex>\gamma</tex> общий префикс <tex>\alpha</tex> и <tex>\beta</tex>, <tex>\alpha = \gamma c \delta</tex>, <tex>\beta = \gamma d \xi</tex> и <tex>c < d</tex>
 
* <tex>\gamma</tex> общий префикс <tex>\alpha</tex> и <tex>\beta</tex>, <tex>\alpha = \gamma c \delta</tex>, <tex>\beta = \gamma d \xi</tex> и <tex>c < d</tex>
 
}}
 
}}
 +
 +
Строка <tex>\alpha = aca \le \beta = acaaba</tex>, т.к. является префиксом <tex>\beta</tex>.
 +
 +
Строка <tex>\alpha = acaa \le \beta = acab</tex>, т.к. <tex>a \le b</tex>.
 +
 +
==Литература==
 +
* Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — 2-е изд.
  
 
[[Категория:Алгоритмы и структуры данных]]
 
[[Категория:Алгоритмы и структуры данных]]
 
[[Категория:Основные определения. Простые комбинаторные свойства слов]]
 
[[Категория:Основные определения. Простые комбинаторные свойства слов]]

Версия 11:49, 21 июня 2012

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

Определение:
Алфавитом [math]\Sigma[/math] называется конечное непустое множество элементов, называемых символами.


Определение:
Нейтральным элементом (пустой строкой) [math]\varepsilon \in \Sigma^{0}[/math] называется элемент, для которого верно [math]\alpha\varepsilon=\varepsilon\alpha=\alpha[/math].


Определение:
Цепочкой (словом, строкой) конечной длины обозначим [math]\Sigma^* : \Sigma^* = \bigcup\limits_{n = 0}^\infty \Sigma^n[/math].


Определение:
Конкатенацией строк [math]\alpha \in \Sigma^k[/math] и [math]\beta \in \Sigma^m[/math] является строка [math]\alpha\beta \in \Sigma^{k+m}[/math]. Конкатенация является ассоциативной операцией.


[math]\Sigma^*[/math] с операцией конкатенации и нейтральным элементом [math]\varepsilon[/math] образуют моноид. Данный моноид совпадает со свободным над [math]\Sigma[/math].

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

Определение:
[math]\alpha[/math] называется префиксом [math]\beta[/math], если [math]\beta = \alpha \gamma[/math]. Аналогично определяется суффикс строки.


Пусть [math]\beta = \underline{abr}acada\underline{bra}[/math], тогда

  • если [math]\alpha = abr[/math], то [math]\alpha[/math] является префиксом [math]\beta[/math]
  • если [math]\alpha = bra[/math], то суффиксом.


Определение:
[math]\alpha[/math] называется бордером [math]\beta[/math], если [math]\alpha[/math] одновременно является и суффиксом и префиксом.


Пусть [math]\beta = \underline{abra}cad\underline{abra}[/math], тогда [math]\alpha = abra[/math] будет бордером [math]\beta[/math].


Определение:
[math]p[/math] называется периодом [math]\alpha[/math], если [math]\forall i = 1 \ldots [n / p] * p - p \quad[/math] [math]\alpha [i] = \alpha[i + p][/math].


Строка [math]\alpha = acaacab[/math] является сильнопериодической ([math]p = 3[/math]).


Определение:
Строка [math]\alpha[/math] называется сильнопериодической, если [math]n[/math] [math]mod[/math] [math]p = 0[/math].


Строка [math]\alpha = acaacaaca[/math] является сильнопериодической ([math]p = 3[/math]).


Определение:
Строка [math]\alpha[/math] является подстрокой [math]\beta[/math], если [math]\beta = \gamma \alpha \delta[/math].


Строка [math]\alpha = aca[/math] является подстрокой [math]\beta = abr\underline{aca}dabra[/math].


Определение:
Строка [math]\alpha \le \beta[/math], если:
  • [math]\alpha[/math] префикс [math]\beta[/math]
  • [math]\gamma[/math] общий префикс [math]\alpha[/math] и [math]\beta[/math], [math]\alpha = \gamma c \delta[/math], [math]\beta = \gamma d \xi[/math] и [math]c \lt d[/math]


Строка [math]\alpha = aca \le \beta = acaaba[/math], т.к. является префиксом [math]\beta[/math].

Строка [math]\alpha = acaa \le \beta = acab[/math], т.к. [math]a \le b[/math].

Литература

  • Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — 2-е изд.