Изменения

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

Алгоритм LZMA

78 байт добавлено, 21:54, 20 декабря 2016
Нет описания правки
====Кодер====
1. # Функция принимает массив и длину массива как аргументы, если длина не была передана, то массив не обрабатывается. 2. # Инициализируем переменные <tex>tmp</tex>, для сохранения последнего элемента и <tex>last</tex> для хранения предыдущего числа.
Инициализируем цикл.
# В цикле:
#:3.1 Сохраняем элемент с индексом <tex>i</tex>.
#:3.2 Вычисляем разницу между элементом под номером <tex>i</tex> и <tex>i-1</tex> и перезаписываем ее в элемент массива с индексом <tex>i</tex>
3. В цикле:
* 3.1 Сохраняем элемент с индексом <tex>i</tex>.
* 3.2 Вычисляем разницу между элементом под номером <tex>i</tex> и <tex>i-1</tex> и перезаписываем ее в элемент массива с индексом <tex>i</tex>
'''function''' deltaEncode(bp: '''list<char>''', n: '''int'''):
'''char''' last = 0
|<tex>\fbox{a1330}133132 </tex>
|
|<<tex>0\langle0,0,a\rangle</tex>>
|-
|<tex>a\fbox{13301}33132</tex>
|
|<<tex>0\langle0,0,1\rangle</tex>>
|-
|<tex>a1\fbox{33013}3132</tex>
|
|<<tex>0\langle0,0,3\rangle</tex>>
|-
|<tex>a13\fbox{30133}132</tex>
|<tex>3</tex>
|<<tex>1\langle1,1,0\rangle</tex>>
|-
|<tex>a1330\fbox{13313}2</tex>
|<tex>133</tex>
|<<tex>4\langle4,3,1\rangle</tex>>
|-
|<tex>a13301331\fbox{32}</tex>
|<tex>3</tex>
|<<tex>2\langle2,1,2\rangle</tex>>
|}
Получаем код: <tex>00a001003110431212\$</tex>, где <tex>\$</tex> — это символ конца сообщения.
Анонимный участник

Навигация