<br><br><div class="gmail_quote">2012/8/3 Yury Zavarin <span dir="ltr"><<a href="mailto:yury.zavarin@gmail.com" target="_blank">yury.zavarin@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2012/8/3 Михаил Монашёв <span dir="ltr"><<a href="mailto:postmaster@softsearch.ru" target="_blank">postmaster@softsearch.ru</a>></span><br><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Здравствуйте.<br>
<br>
Есть  несколько  миллионов  чисел  в  диапазоне от 0 до 2 в 32 степени<br>
минус  1  .  Нужно  быстро  проверять, есть такое число или нету. Если<br>
засунуть  их в битовый массив, то они все влезут в 16 мегабайт. Вопрос<br>
в  том,  каким  модулем  пользоваться для записи/чтения в этот битовый<br>
массив,  чтобы  было  быстро  и при этом не раздувалось в памяти более<br>
20-30  мегабайт? Или может проще самому через substr + побитовые ИЛИ/И<br>
реализовать чзапись/чтение?<br></blockquote><div><br></div></div><div>Э, гм, если от 0 до 2**32, то нужно вообще-то 512 мегабайт памяти, если по биту на одно число.</div><div><br></div><div>Есть модуль Bit::Vector как обвязка над vec().</div>
</div></blockquote><div><br></div><div>Здесь я нагнал, там внутри у них своя реализация на C. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote">
<div>Если сделать</div>
<div>Bit::Vector->new(2**32 - 1)</div><div>то как раз где-то 512 Мб отъест.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span><font color="#888888"><br>
--<br>
С уважением,<br>
 Михаил                          mailto:<a href="mailto:postmaster@softsearch.ru" target="_blank">postmaster@softsearch.ru</a><br>
<br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</font></span></blockquote></div></div><br>
</blockquote></div><br>