[Moscow.pm] Большой битовый массив
Yury Zavarin
yury.zavarin на gmail.com
Чт Авг 2 23:44:52 PDT 2012
2012/8/3 Михаил Монашёв <postmaster на softsearch.ru>
> Здравствуйте.
>
> Есть несколько миллионов чисел в диапазоне от 0 до 2 в 32 степени
> минус 1 . Нужно быстро проверять, есть такое число или нету. Если
> засунуть их в битовый массив, то они все влезут в 16 мегабайт. Вопрос
> в том, каким модулем пользоваться для записи/чтения в этот битовый
> массив, чтобы было быстро и при этом не раздувалось в памяти более
> 20-30 мегабайт? Или может проще самому через substr + побитовые ИЛИ/И
> реализовать чзапись/чтение?
>
Э, гм, если от 0 до 2**32, то нужно вообще-то 512 мегабайт памяти, если по
биту на одно число.
Есть модуль Bit::Vector как обвязка над vec(). Если сделать
Bit::Vector->new(2**32 - 1)
то как раз где-то 512 Мб отъест.
>
> --
> С уважением,
> Михаил mailto:postmaster на softsearch.ru
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20120803/57458ab3/attachment.html>
Подробная информация о списке рассылки Moscow-pm