Сколько существует двоичных строк длины n, не содержащих двух единиц подряд? Постройте несколько различных доказательств (рекуррентные соотношения, метод включений-исключений, матричная экспонентация), сравните их и обсудите асимптотическое поведение

20 Окт в 16:41
6 +1
0
Ответы
1
Короткий ответ: число таких строк длины nnn равно ana_nan , где
a0=1, a1=2,an=an−1+an−2 (n≥2), a_0=1,\; a_1=2,\qquad a_n=a_{n-1}+a_{n-2}\ (n\ge2),
a0 =1,a1 =2,an =an1 +an2 (n2),
и в закрытой форме
an=Fn+2=∑k=0⌊(n+1)/2⌋(n−k+1k), a_n=F_{n+2}=\sum_{k=0}^{\lfloor(n+1)/2\rfloor}\binom{n-k+1}{k},
an =Fn+2 =k=0⌊(n+1)/2 (knk+1 ),
где FmF_mFm — числа Фибоначчи (F0=0,F1=1F_0=0,F_1=1F0 =0,F1 =1). Ниже — несколько различных доказательств, сравнение и асимптика.
1) Доказательство рекуррентой (простое, конструктивное).
- Разделим все строки длины nnn по первой позиции: если первая цифра 000, оставшиеся n−1n-1n1 позиций могут быть любыми допустимыми — an−1a_{n-1}an1 способов; если первая цифра 111, то вторая обязательно 000, и оставшиеся n−2n-2n2 позиции дают an−2a_{n-2}an2 способов. Следовательно
an=an−1+an−2, a_n=a_{n-1}+a_{n-2},
an =an1 +an2 ,
с начальными условиями a0=1,a1=2a_0=1,a_1=2a0 =1,a1 =2. Это даёт an=Fn+2a_n=F_{n+2}an =Fn+2 .
2) Комбинаторическое (и эквивалентно включения‑исключения по расположению единиц).
- Считаем по числу единиц kkk. Чтобы kkk единиц не были смежными, между ними должно быть по крайней мере по одной нулевой «прослойке» (кроме концов). Стандартная биекция даёт число размещений
(n−k+1k). \binom{n-k+1}{k}.
(knk+1 ).
Суммируя по kkk от 000 до ⌊(n+1)/2⌋\lfloor(n+1)/2\rfloor⌊(n+1)/2, получаем
an=∑k=0⌊(n+1)/2⌋(n−k+1k). a_n=\sum_{k=0}^{\lfloor(n+1)/2\rfloor}\binom{n-k+1}{k}.
an =k=0⌊(n+1)/2 (knk+1 ).
(Тот же результат можно вывести методом включений‑исключений, учитывая множества позиций пар «11» и устраняя размещения с соседними единицами; итоговая альтернирующая сумма сводится к приведённой биномиальной формуле.)
3) Матричная экспонентация (линейная алгебра, быстрый подсчёт).
- Рекуррентая связь эквивалентна векторному виду
(anan−1)=(1110)(an−1an−2), \begin{pmatrix}a_n\\a_{n-1}\end{pmatrix}
=\begin{pmatrix}1&1\\1&0\end{pmatrix}
\begin{pmatrix}a_{n-1}\\a_{n-2}\end{pmatrix},
(an an1 )=(11 10 )(an1 an2 ),
поэтому
(anan−1)=(1110) n−1(a1a0). \begin{pmatrix}a_n\\a_{n-1}\end{pmatrix}
=\begin{pmatrix}1&1\\1&0\end{pmatrix}^{\,n-1}
\begin{pmatrix}a_1\\a_0\end{pmatrix}.
(an an1 )=(11 10 )n1(a1 a0 ).
Это даёт быстрый алгоритм вычисления за O(log⁡n)O(\log n)O(logn) умножений матриц (бинарное возведение в степень). Собственная разложение матрицы даёт формулу Бине:
an=φ n+2−ψ n+25, a_n=\frac{\varphi^{\,n+2}-\psi^{\,n+2}}{\sqrt5},
an =5 φn+2ψn+2 ,
где φ=1+52, ψ=1−52\varphi=\tfrac{1+\sqrt5}{2},\ \psi=\tfrac{1-\sqrt5}{2}φ=21+5 , ψ=215 .
Сравнение методов.
- Рекуррентный метод — самый простой для доказательства и получения значений по‑порядку (линейное время).
- Комбинаторический подход даёт явную сумму по числу единиц и удобен для точных счётов и понимания структуры строк.
- Метод включений‑исключений формально даёт ту же формулу, но требует аккуратного учёта перекрытий; он хорош, чтобы понять, как исключаются запрещённые локальные паттерны.
- Матричная экспонентация/собственные значения дают быстрый (логарифмический) алгоритм вычисления и сразу асимптику и замыкание (Бине).
Асимптотика.
Из формулы Бине следует
an∼φ n+25(n→∞), a_n\sim\frac{\varphi^{\,n+2}}{\sqrt5}\quad(n\to\infty),
an 5 φn+2 (n),
и отношение последовательных членов стремится к золотовому сечению:
an+1an→φ≈1.618… \frac{a_{n+1}}{a_n}\to\varphi\approx1.618\ldots
an an+1 φ1.618
То есть рост экспоненциальный с базой φ\varphiφ.
Заключение: количество двоичных строк длины nnn без двух единиц подряд равно an=Fn+2a_n=F_{n+2}an =Fn+2 , его можно получить рекурсивно, комбинаторно (или через включения‑исключения) и через матричную экспоненту; асимптотически an≈φn+2/5a_n\approx\varphi^{n+2}/\sqrt5an φn+2/5 .
20 Окт в 17:50
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир