2014-09-19 3 views
0

Я реализовал форвардное преобразование преобразования Burrows-Wheeler (BWT). Теперь проблема в том, что я не могу получить обратное.Обратное преобразование Burrows-Wheeler

Рассмотрим р:

p = [3 2 5 3 1 4 2 6] 

Форвард BWT:

fbwt = [3 3 4 5 6 1 2 2] 
index = 5 

Путь реверсе:

First Step Second Step Пожалуйста, кто-то помочь мне.

+0

Что вы сделали до сих пор? – fiveclubs

+0

Я сделал форвардное преобразование, но в обратном я абсолютно чистый, не могли бы вы мне помочь? @fiveclubs – yudha25

ответ

0

Посмотрите на все столбцы с именем a. Обратите внимание, как первая цифра при просмотре столбца представляет собой преобразованную последовательность? Взгляните на столбец a при i = 1. Это исходная последовательность, затем она сортируется в столбце b. Затем для i=2 столбец a представляет собой столбец b от i=1 с переделанной последовательностью. Они сортируются снова и помещаются в колонку b. Это повторяется, тогда вы используете индекс в качестве поиска, в который строка читается из таблицы. Что касается столбца c, вы заметите, что это просто столбец b с добавленным оригинальным преобразованием.

+0

Спасибо за объяснение @fiveclubs, но можете ли вы объяснить в коде? Я не могу сделать код, потому что мои способности недостаточно хороши, пожалуйста – yudha25

Смежные вопросы