Период и бордер, их связь — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Связь периода и бордера)
(Свойства периода)
Строка 15: Строка 15:
 
|statement= Если у строки есть [[Основные определения, связанные со строками#Отношения между строками|период]] длины <tex>|k|</tex>, то у нее есть период длины <tex>|kx|</tex>, где <tex> x \in N</tex>.
 
|statement= Если у строки есть [[Основные определения, связанные со строками#Отношения между строками|период]] длины <tex>|k|</tex>, то у нее есть период длины <tex>|kx|</tex>, где <tex> x \in N</tex>.
 
|proof=
 
|proof=
Пусть длина строки равна <tex>n</tex>, сама строка {{---}} <tex> \alpha </tex>.<br/>
+
Пусть <b>длина</b> строки равна <tex>n</tex>, сама <b>строка</b> {{---}} <tex>\alpha</tex>.<br/>
Доказательство будем вести по индукции по числу <tex>x</tex>.<br/>
+
Доказательство будем вести по <b>индукции по числу</b> <tex>x</tex>.<br/>
Для <tex> x = 1 </tex> утверждение очевидно.<br/>
+
<ol>
Пусть верно для <tex>x = m</tex>. Докажем, что верно для <tex>x = m + 1</tex>.<br/>
+
<li>Для <tex> x = 1 </tex> утверждение очевидно.</li>
Из определения периода имеем, что<br/>
+
<li>Пусть верно для <tex>x = m</tex>.</li>
для <tex>\forall i = 1 \ldots n - k</tex>, <tex>\alpha [i] = \alpha[i + k]</tex>, а из предположения индукции, что<br/>
+
<li>Докажем, что верно для <tex>x = m + 1</tex>.<br/>
для <tex>\forall i = 1 \ldots n - k</tex>, <tex>\alpha [i] = \alpha[i + mk]</tex><br/>
+
Из <b>определения периода</b> имеем, что<br/>
 +
  <tex>\forall i = 1 \ldots n - k</tex>, <tex>\alpha [i] = \alpha[i + k]</tex>,<br/>
 +
а из <b>предположения</b> индукции, что<br/>
 +
  <tex>\forall i = 1 \ldots n - k</tex>, <tex>\alpha [i] = \alpha[i + mk]</tex><br/>
 
Значит получаем, что<br/>
 
Значит получаем, что<br/>
<tex>\forall i = 1 \ldots n - k</tex>, <tex>\alpha [i] = \alpha [i + mk] = \alpha[i + mk + k]</tex>, следовательно<br/>
+
  <tex>\forall i = 1 \ldots n - k</tex>, <tex>\alpha [i] = \alpha [i + mk] = \alpha[i + mk + k]</tex>,<br/>
для <tex>\forall i = 1 \ldots n - k</tex>, <tex>\alpha [i] = \alpha[i + (m + 1)k]</tex>.<br/>
+
следовательно<br/>
Значит у строки есть период длины <tex> |(m + 1)k|</tex>.<br/>
+
      для <tex>\forall i = 1 \ldots n - k</tex>, <tex>\alpha [i] = \alpha[i + (m + 1)k]</tex>.<br/>
 +
Значит у строки есть <b>период длины</b> <tex> |(m + 1)k|</tex>.<br/></li>
 +
</ol>
 
Утверждение доказано.
 
Утверждение доказано.
 
}}
 
}}
Строка 32: Строка 37:
 
|statement= Если у строки есть периоды длины <tex>|p|</tex> и <tex>|q|</tex>, то НОД<tex>(p, q)</tex> также является периодом этой строки.
 
|statement= Если у строки есть периоды длины <tex>|p|</tex> и <tex>|q|</tex>, то НОД<tex>(p, q)</tex> также является периодом этой строки.
 
|proof=
 
|proof=
Пусть строка равна <tex> \alpha </tex>.<br/>
+
Пусть <b>строка</b> равна <tex> \alpha </tex>.<br/>
Доказательство будем вести по индукции по парам <tex>(p, q)</tex>, где <tex> p \geqslant q </tex>, а <tex>(p, q) + 1 = \begin{cases} (p, q + 1), & q < p;\\
+
Доказательство будем вести <b>по индукции по парам</b> <tex>(p, q)</tex>, где <tex> p \geqslant q </tex>, а <tex>(p, q) + 1 = \begin{cases} (p, q + 1), & q < p;\\
 
(p + 1, 1), &  q = p.\end{cases}</tex><br/>
 
(p + 1, 1), &  q = p.\end{cases}</tex><br/>
Для <tex> (1, 1) </tex> утверждение очевидно.<br/>
+
<ol>
Пусть верно для всех пар меньших <tex>(p, q)</tex>.<br/>
+
<li>Для <tex> (1, 1) </tex> утверждение очевидно.</li>
Докажем, что верно для <tex>(p, q)</tex>.  
+
<li>Пусть верно для всех <b>пар меньших</b> <tex>(p, q)</tex>.</li>
Для <tex>\forall i = 1 \ldots n - p</tex>, <tex>\alpha [i] = \alpha[i + p] = \alpha[i + q]</tex>.<br/>
+
<li>Докажем, что верно для <tex>(p, q)</tex>.<br/>
Значит для <tex>\forall i = q \ldots n - p</tex>, <tex>\alpha [i + q] = \alpha[i + p]</tex><br/>
+
Из <b>определения периода</b>:<br/>
Сделаем замену <tex>j = i + q</tex> и получим, что
+
<tex>\forall i = 1 \ldots n - p</tex>, <tex>\alpha [i] = \alpha[i + p] = \alpha[i + q]</tex>.<br/>
для <tex>\forall j = 1 \ldots n - (p - q)</tex>, <tex>\alpha [j] = \alpha[j + (p - q)]</tex><br/>
+
Значит <tex>\forall i = q \ldots n - p</tex>, <tex>\alpha [i + q] = \alpha[i + p]</tex><br/>
Получили новый период длины <tex>|p - q|</tex>. Из предположения известно, что НОД<tex>(p - q, q)</tex> {{---}} период строки, но НОД<tex>(p - q, q)</tex> <tex>=</tex> НОД<tex>(p, q)</tex>. Следовательно утверждение доказано.
+
Сделаем замену <tex>j = i + q</tex> и получим, что<br/>
 +
<tex>\forall j = 1 \ldots n - (p - q)</tex>, <tex>\alpha [j] = \alpha[j + (p - q)]</tex><br/>
 +
Получили новый <b>период длины</b> <tex>|p - q|</tex>. Из предположения известно, что НОД<tex>(p - q, q)</tex> {{---}} период строки, но НОД<tex>(p - q, q)</tex><tex>=</tex>НОД<tex>(p, q)</tex>.</li>
 +
</ol>
 +
Следовательно утверждение доказано.
 
}}
 
}}
  
 
[[Категория:Алгоритмы и структуры данных]]
 
[[Категория:Алгоритмы и структуры данных]]
 
[[Категория:Основные определения. Простые комбинаторные свойства слов]]
 
[[Категория:Основные определения. Простые комбинаторные свойства слов]]

Версия 14:06, 21 апреля 2012

Связь периода и бордера

Теорема:
Если у строки длины [math]|n|[/math] есть бордер длины [math]|k|[/math], то у нее есть период длины [math]|n - k|[/math].
Доказательство:
[math]\triangleright[/math]

Пусть дана строка [math]\alpha[/math]. Напишем формально определения бордера длины [math]|k|[/math] строки [math]\alpha[/math]:

  [math]\forall i = 1 \ldots k[/math], [math]\alpha [i] = \alpha[i + (n - k)][/math].

Сделаем замену [math]x = n - k[/math]:

  [math]\forall i = 1 \ldots n - x[/math], [math]\alpha [i] = \alpha[i + x][/math]. 
Получили определение периода длины [math]x[/math]. Но [math]x = n - k[/math], значит у строки [math]\alpha[/math] есть период длины [math]|n - k|[/math].
[math]\triangleleft[/math]

Свойства периода

Теорема:
Если у строки есть период длины [math]|k|[/math], то у нее есть период длины [math]|kx|[/math], где [math] x \in N[/math].
Доказательство:
[math]\triangleright[/math]

Пусть длина строки равна [math]n[/math], сама строка[math]\alpha[/math].
Доказательство будем вести по индукции по числу [math]x[/math].

  1. Для [math] x = 1 [/math] утверждение очевидно.
  2. Пусть верно для [math]x = m[/math].
  3. Докажем, что верно для [math]x = m + 1[/math].
    Из определения периода имеем, что
    [math]\forall i = 1 \ldots n - k[/math], [math]\alpha [i] = \alpha[i + k][/math],
    а из предположения индукции, что
    [math]\forall i = 1 \ldots n - k[/math], [math]\alpha [i] = \alpha[i + mk][/math]
    Значит получаем, что
    [math]\forall i = 1 \ldots n - k[/math], [math]\alpha [i] = \alpha [i + mk] = \alpha[i + mk + k][/math],
    следовательно
    для [math]\forall i = 1 \ldots n - k[/math], [math]\alpha [i] = \alpha[i + (m + 1)k][/math].
    Значит у строки есть период длины [math] |(m + 1)k|[/math].
Утверждение доказано.
[math]\triangleleft[/math]
Теорема:
Если у строки есть периоды длины [math]|p|[/math] и [math]|q|[/math], то НОД[math](p, q)[/math] также является периодом этой строки.
Доказательство:
[math]\triangleright[/math]

Пусть строка равна [math] \alpha [/math].
Доказательство будем вести по индукции по парам [math](p, q)[/math], где [math] p \geqslant q [/math], а [math](p, q) + 1 = \begin{cases} (p, q + 1), & q \lt p;\\ (p + 1, 1), & q = p.\end{cases}[/math]

  1. Для [math] (1, 1) [/math] утверждение очевидно.
  2. Пусть верно для всех пар меньших [math](p, q)[/math].
  3. Докажем, что верно для [math](p, q)[/math].
    Из определения периода:
    [math]\forall i = 1 \ldots n - p[/math], [math]\alpha [i] = \alpha[i + p] = \alpha[i + q][/math].
    Значит [math]\forall i = q \ldots n - p[/math], [math]\alpha [i + q] = \alpha[i + p][/math]
    Сделаем замену [math]j = i + q[/math] и получим, что
    [math]\forall j = 1 \ldots n - (p - q)[/math], [math]\alpha [j] = \alpha[j + (p - q)][/math]
    Получили новый период длины [math]|p - q|[/math]. Из предположения известно, что НОД[math](p - q, q)[/math] — период строки, но НОД[math](p - q, q)[/math][math]=[/math]НОД[math](p, q)[/math].
Следовательно утверждение доказано.
[math]\triangleleft[/math]