Изменения

Перейти к: навигация, поиск

Fusion tree

466 байт убрано, 22:00, 6 июня 2015
Циклы де Брёйна
Каждый шаг выполняется за <tex>O(1)</tex>, поэтому всего потребуется <tex>O(1)</tex> времени, чтобы найти индекс.
== Циклы Индекс наиболее старшего бита с помощью цикла де Брёйна ==
'''Последовательность де Брёйна''' {{---}} последовательность <math>a_1,\;\ldots,\;a_t</math>, элементы которой принадлежат заданному конечному множеству (обычно рассматривают множество <math>\{0,\;1,\;\ldots,\;k-1\}</math>), и все подпоследовательности <math>a_{i+1},\;\ldots,\;a_{i+n}</math> заданной длины <math>n</math> различны.
* 0000100110101111
=== Граф де Брёйна Получение индекса по значению степени двойки ===
Существует удобная интерпретация последовательностей и циклов Возьмем цикл де Брёйна, основанная на так называемом '''графе де Брёйна''' {{---}} ориентированном графе с для <mathtex>k^n</mathtex> вершинами, соответствующими <mathtex>k^(i = 0\ldots n-1)</mathtex> различных наборов длины и запишем его как число <tex>b</tex> (для <mathtex>n8</mathtex> с элементами из цикл де Брёна равен <mathtex>\{0,\;1,\;\ldots,\;k-1\}00010111</mathtex>, в котором из вершины а значение <tex>b = 23<math/tex>(x_1,\;\ldots,\;x_n). Умножим это число на <tex>2^i</mathtex> в вершину , сдвинем его влево на <mathtex>(y_1,\;\ldots,\;y_n)i</mathtex> ребро ведёт в том и только том случае, когда а затем обратно вправо на <mathtex>x_i=y_{in-1}k</mathtex> (<mathtex>ik</tex> такое, что <tex>n=2,^k</tex>). <tex>(b \;ll i)\ldots,\;gg(n-k)</mathtex>); при этом самому ребру можно сопоставить набор , тогда получившееся число {{---}} <tex>i</tex>-ая подстрока длины <mathtex>k</tex>n+1данного цикла де Брёйна. Эту перестановку опозначим за <tex>p</mathtex>: и тогда применив ее к <mathtex>(x_1,2^i\;cdot x) \ldots,\;x_n,\;y_ngg (n-k)=(x_1,\;y_1,\;\ldots,\;y_n)</mathtex>. Для такого графа не проходящие дважды через одно и то же ребро эйлеровы пути (эйлеровы циклы) соответствуют последовательности (циклу) де Брёйна с параметрами получим <mathtex>n+1i</mathtex> и : <mathtex>kp</mathtex>в данном случае такое, а не проходящие дважды через одну и ту же вершину гамильтоновы пути (гамильтоновы циклы) {{---}} последовательности (циклу) де Брёйна с параметрами что <mathtex>nk</mathtex> и подряд идущих бит равны значению, на сколько мы сдвинули, на какой позиции стоит вектор длины <mathtex>k</mathtex>.
Граф де Брёйна широко применяется в биоинформатике в задачах сборки генома.
==См. Также==
317
правок

Навигация