Изменения

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

Гамма-, дельта- и омега-код Элиаса

27 байт убрано, 22:07, 29 ноября 2014
Примеры
'''Пример кодирования числа <tex>N = 12</tex>'''
1. # Записываем <tex>0</tex>; 2. # Добавляем справа от нуля двоичное представление <tex>12 (1100 0)</tex>; 3. # <tex>N = 4 - 1 = 3</tex> (длина последовательности <tex>1100</tex> минус <tex>1</tex>); 4. # Добавляем справа двоичное представление <tex>N (11 1100 0)</tex>; 5. # <tex>N = 1</tex>, значит <tex>12</tex> кодирует последовательность '''<tex>11 1100 0</tex>'''.
'''Пример декодирования последовательности <tex>10 100 10001 0</tex>'''
1. # <tex>N = 1</tex>;  2. # Считываем группу <tex>10. N = 2</tex>; 3. # Считываем группу <tex>100. N = 4</tex>; 4. # Считываем группу <tex>10001. N = 17</tex>; 5. # Следующий бит <tex>= 0</tex>, поэтому закодированное число {{---}} '''<tex>17</tex>'''.
Приведем примеры нескольких первых омега-кодов Элиаса:
Количество групп в коде возрастает быстро вначале, но далее — очень медленно:
1. # для <tex>1</tex> будет <tex>0</tex> групп; 2. # <tex>2 ... 3 (2^1 ... 2^2 − 1)</tex> {{---}} <tex>1</tex> группа; 3. # <tex>4 ... 15 (2^2 ... 2^{2^2} − 1)</tex> {{---}} <tex>2</tex> группы; 4. # <tex>16 ... 65536 (2^{2^2} ... 2^{2^{2^2}} − 1)</tex> {{---}} <tex>3</tex> группы; 5. # <tex>65536 ... 2\times10^{19728} (2^{2^{2^2}} ... 2^{2^{2^{2^2}}} − 1)</tex> {{---}} всего <tex>4</tex> группы.
{| border="1"
577
правок

Навигация