Упражнения
Ходят слухи, что нуклеотиды встречаются в генах не с одинаковой частотой. Давайте попробуем для сжатия генетической информации использовать несбалансированный код Хаффмана.
Закодируем символы следующим образом (считаем, что кодировка фиксирована):
-
A — 0
-
T — 10
-
G — 110
-
C — 111
-
Реализуйте кодеровщик.
-
Реализуйте декодер.
-
Снабдите решение тестами.
Обратите внимание, что если закодировать любую последовательность, а потом раскодировать её, то должна получиться исходная последовательность. -
Найдите примеры реальных ДНК и проверьте, получается ли их сжать.