[devel] вопрос про числа

Alexey Tourbin at at altlinux.ru
Sat Nov 7 19:34:02 UTC 2009


Сгенирируем n случайных чисел из диапазона 0..2^m-1 и упорядочим их
по возрастанию.  Для примера m=32, n порядка 10^3.

Вычислить энтропию и предложить оптимальную процедуру кодирования
(сжатия) последовательности.  Сколько битов на число можно получить?


(Вопрос связан с тем, что нам нужно придумать компактное представление
"множества строк".  Например каждую строку можно представить в виде её
m-битного хеша.  Соответственно множество n строк можно представить
в виде n*m битов.  Но всё-таки битов получается очень много, и их можно
неплохо сжать.  Неплохо наварить на этом можно, вот что.  Осталось только
придумать процедуру сжатия.

Иначе же существует эквивалентное представление в алфавите {0,1} с
постоянными вероятностями.  А именно, каждое число из диапазона 0..2^m-1
можно рассматривать как номер бита в битмапе из 2^m битов.  Тогда
последовательность чисел можно перевести в битмап и сжать битмап
побитово.  Проблема только в том что при побитовом кодировании/
декодировании получается очень большой битмап и очень большой цикл.)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20091107/99f698bc/attachment.bin>


More information about the Devel mailing list