403
правки
Изменения
→Фибоначчиевы деревья
{{Лемма
|id=Лемма1
|statement=Для всех целых <tex> k n \geqslant 2</tex><tex> F_k F_n = 1 + \sum\limits_{i=0}^{kn-2} F_i </tex>,где <tex> F_k F_n </tex> {{---}} <tex> k n </tex> число Фибоначчи, определяемое формулой:
<tex>
\begin{cases}
0, & k n = 0 \\ 1, & k n = 1 \\ F_{kn-1} + F_{kn-2}, & k n \geqslant 2
\end{cases} </tex>
|proof=
Докажем лемму с помощью математической индукции:
при <tex>k n = 2</tex>
<tex>F_2 = 1 + \sum\limits_{i=0}^0 F_i = 1 + 0 = 1</tex>, что действительно верно.
По индукции предполагаем, что <tex>F_{kn-1} = 1 + \sum\limits_{i=0}^{kn-3} F_i </tex>. Тогда
<tex>F_k F_n = F_{kn-1} + F_{kn-2} = 1 + \sum\limits_{i=0}^{kn-3} F_i + F_{kn-2} = 1 + \sum\limits_{i=0}^{kn-2} F_i</tex>
}}
{{Лемма
|id=Лемма2
|statement= <tex>F_k F_n =\Theta(\varphi^kn)</tex>, где <tex dpi="160"> \varphi = \frac {1 + \sqrt 5} {2}</tex>
|proof=
Для начала докажем, что <tex>F_k F_n =</tex> <tex dpi="160">\frac {\varphi^k n - (-\varphi)^{-kn}} {\sqrt 5}</tex>
Используем для этого математическую индукцию.
При <tex>k n = 0</tex>
<tex>F_0 =</tex> <tex dpi="160">\frac {\varphi^0 - (-\varphi)^0} {\sqrt 5} = \frac {1 - 1} {\sqrt 5} = 0</tex>, что верно.
<tex>F_1 =</tex> <tex dpi="160">\frac {\varphi^1 - (-\varphi)^{-1}} {\sqrt 5} = \frac {1} {\sqrt 5}(\frac {1 + \sqrt 5} {2} - \frac {1 - \sqrt 5} {2}) = \frac {2\sqrt 5} {2\sqrt 5} = 1</tex>, что также верно.
По индукции предполагаем, что <tex>F_{kn-1} =</tex> <tex dpi="160">\frac {\varphi^{kn-1} - (-\varphi)^{1-kn}} {\sqrt 5}</tex> и <tex>F_{kn-2} =</tex> <tex dpi="160">\frac {\varphi^{kn-2} - (-\varphi)^{2-kn}} {\sqrt 5}</tex>. Тогда
<tex>F_k F_n = F_{kn-1} + F_{kn-2} =</tex> <tex dpi="160">\frac {\varphi^{kn-1} - (-\varphi)^{1-kn}} {\sqrt 5} + \frac {\varphi^{kn-2} - (-\varphi)^{2-kn}} {\sqrt 5} =</tex>
<tex dpi="160">= \frac {1} {\sqrt 5}</tex> <tex>(\varphi^{kn-1} - (-\varphi)^{1-kn} + \varphi^{kn-2} - (-\varphi)^{2-kn}) </tex> <tex dpi="160">= \frac {1} {\sqrt 5}</tex> <tex>(\varphi^{kn}(\varphi^{-1} + \varphi^{-2}) - (-\varphi)^{-kn}(-\varphi + \varphi^{2}))</tex>
Подставив вместо <tex>\varphi</tex> его значение, нетрудно убедится, что <tex>\varphi^{-1} + \varphi^{-2} = -\varphi + \varphi^{2} = 1</tex>
Поскольку <tex>\left\vert (-\varphi)^{-1} \right\vert < 1</tex>, то выполняются неравенства <tex dpi="160">\frac {(-\varphi)^{-kn}} {\sqrt 5} < \frac {1} {\sqrt 5} < \frac {1} {2}</tex>. Таким образом, <tex>kn</tex>-е число Фибоначчи равно <tex dpi="160">\frac {\varphi^{kn}} {\sqrt 5}</tex>, округленному до ближайшего целого числа. Следовательно, <tex>F_k F_n =\Theta(\varphi^kn)</tex>.
}}
= Фибоначчиевы кучи =