Определение: |
Определим последовательность строк [math]T_n[/math] над двухбуквенным алфавитом [math]\{a, b\}[/math] следующим образом: [math]T_n = t_0 t_1 \dots t_{2^n-1}[/math], где:
- [math]t_i = a[/math], если двоичная запись числа [math]i[/math] содержит чётное число единиц
- [math]t_i = b[/math], иначе.
Строки этой последовательности называются строками Туэ-Морса. |
Примеры
Приведём первые пять строк Туэ-Морса:
- [math]T_0 = a[/math]
- [math]T_1 = ab[/math]
- [math]T_2 = abba[/math]
- [math]T_3 = abbabaab[/math]
- [math]T_4 = abbabaabbaababba[/math]
Свойства и эквивалентные определения
Как видно из определения, символ на [math]i[/math]-ой позиции не зависит от номера строки. Так как длина строк возрастает, каждая строка является собственным префиксом следующей, поэтому можно рассматривать получение следующей строки как приписывание к текущей строке некоторой другой строки.
Теорема: |
Пусть [math]\varphi[/math] — морфизм, инвертирующий символы:
[math]\varphi(x) = \left\{ \begin{array}{rl}
b, & x = a \\
a, & x = b, \\
\end{array} \right.[/math]
тогда для строк Туэ-Морса верно следующее соотношение: [math]T_{n + 1} = T_n \varphi(T_n)[/math] |
Доказательство: |
[math]\triangleright[/math] |
Заметим, что соответствующие индексы символов при приписывании новой строки к строке [math]T_n[/math] получаются добавлением к индексам [math]i = 0, 1, \dots, 2^n - 1[/math] числа [math]2^n[/math]. Количество единиц в двоичной записи числа [math]i + 2^n[/math] ([math]i \lt 2^n[/math]) ровно на один больше, чем в двоичной записи числа [math]i[/math]. Поэтому приписываемая строка есть ни что иное, как исходная строка с инвертированными символами. |
[math]\triangleleft[/math] |
Данная теорема позволяет определять последовательность строк Туэ-Морса следующим образом: [math]T_0 = a[/math], [math]T_{n + 1} = T_n \varphi(T_n)[/math].
Часто рассматривают предельный случай — бесконечную строку Туэ-Морса, любой символ которой можно получить из обычной строки Туэ-Морса с достаточно большим номером. Бесконечную строку также можно задать с помощью правил ассоциативного исчисления, клеточного автомата, рекурсивных соотношений.
Теорема: |
Не существует двух равных как строки подстрок строки [math]T_n[/math], имеющих пересекающиеся вхождения в [math]T_n[/math] |
Доказательство: |
[math]\triangleright[/math] |
Очевидно что [math]t_{2n}=t_n[/math] и [math]t_{2n+1}=\varphi(t_n)[/math] для [math]n \ge 0[/math]
Пусть существует две равные как строки подстрок строки [math]T_n[/math], имеющих пересекающиеся вхождения в [math]T_n[/math], тогда [math]T_n=ucxcxcv[/math], где [math]u,c,x,v[/math] — подстроки строки [math]T_n[/math]
Пусть [math]m=|cx|[/math] и [math]k=|u|[/math], тогда [math]t_{k+j}=t_{k+j+m}[/math] по предположению при [math]0 \le j \le m[/math].
Рассмотрим наименьшее [math]m\ge 1[/math]. Тогда возможны два случая: [math]m[/math] четно и нечетно:
- [math]m[/math] четно, тогда пусть [math]m=2m'[/math]. Рассмотрю два случая: [math]k[/math] четно или нечетно:
- [math]k[/math] четно: Пусть [math]k=2k'[/math]. Так как [math]t_{k+j}=t_{k+j+m}[/math] при [math]0 \le j \le m[/math], тогда очевидно, что [math]t_{2k'+2j'}=t_{2k'+2j'+2m'}[/math] для [math] 0 \le j' \le m'[/math]. Так как [math]t_{2k'+2j'}=t_{k'+j'}[/math] и [math]t_{2k'+2j'+2m'}=t_{k'+j'+m'}[/math] очевидно, что [math]t_{k'+j'}=t_{k'+j'+m'}[/math] для [math]0 \le j' \le m'[/math]. Это противоречие, так как [math]m[/math] минимально.
- [math]k[/math] нечетно: Пусть [math]k=2k'+1[/math]. Тогда, как и в предыдущем случае [math]t_{2k'+2j'+1}=t_{2k'+2j'+2m'+1}[/math] для [math]0 \le j' \le m'[/math] и тогда [math]t_{k'+j'}=t_{k'+j'+m'}[/math] для [math]0 \le j' \le m'[/math], что является опять противоречием из-за минимальности [math]m[/math]
- [math]m[/math] нечетно, тогда рассмотрю три случая: [math]m \ge 5[/math], [math]m=3[/math] и [math]m=1[/math]. Пусть [math]b_n=\left\{ \begin{array}{rl}
a, & t_n=t_{n-1} \\
b, & t_n \ne t_{n-1}, \\
\end{array} \right.[/math] для [math]n \ge 1[/math]. Заметим, что [math]b_{4n+2}=a[/math] так как [math]4n+2[/math] и [math]4n+1[/math] одинаково записываются в двоичной записи, кроме последних двух битов, которые равны [math]10[/math] и [math]01[/math] соответственно и значит [math]t_{4n+2}=t_{4n+1}[/math]. Так же заметим, что [math]b_{2n+1}=1[/math], так как [math]2n+1[/math] и [math]2n[/math] одинаково записываются в двоичной системе, кроме последнего бита и значит, что [math]t_{2n+1}=\varphi(t_{2n})[/math]
- [math]m[/math] нечетно и [math]m \ge 5[/math]. Тогда [math]b_{k+j}=b_{k+j+m}[/math] для [math]1 \le j \le m[/math]. С [math]m \ge 5[/math] существует [math]j[/math], такое что [math]k+j=2[/math] по модулю [math]4[/math]. Тогда для [math]k+j[/math] точно известно, что [math]b_{k+j}=0[/math], но с другой стороны [math]k+j+m[/math] - нечетно, значит [math]b_{k+j+m}=1[/math]. Противоречие.
- [math]m=3[/math]. Аналогично: [math]b_{k+j}=b_{k+j+3}[/math] для [math]1 \le j \le 3[/math]. Найдем [math]j[/math], чтобы [math]k+j=2[/math] или [math]k+j=3[/math] по модулю [math]4[/math]. Если [math]k+j=2[/math] по модулю [math]4[/math], то противоречие получается так же, как в предыдущем пункте. Рассмотрю [math]k+j=3[/math] по модулю [math]4[/math], тогда [math]b_{k+j}=1[/math], но [math]b_k+j+3=0[/math]. Это опять противоречие.
- [math]m=1[/math]. Тогда [math]t_k=t_{k+1}=t_{k+2}[/math] из чего следует, что [math]t_{2n}=t_{2n+1}[/math] для [math]n=k/2[/math], но [math]t_{2n}=\varphi(t_{2n+1}) \ne t_{2n+1}[/math]. Противоречие.
|
[math]\triangleleft[/math] |
См. также
Слово Фибоначчи
Ссылки