2016-04-23 4 views
3

Каков наиболее эффективный способ генерации случайного двоичного объекта с учетом количества бит? Я понимаю, что функция crypto:rand_bytes будет вариантом, но подсчет бит не обязательно должен быть кратен из 8.Erlang генерирует случайные двоичные файлы

+0

Если это случайное, то вы всегда можете вырезать ненужные биты. Не имеет большого значения. – Amiramix

+0

@Amiramix, как бы я мог достичь именно этого? –

ответ

7
rand_bits(Bits) -> 
    Bytes = (Bits + 7) div 8, 
    <<Result:Bits/bits, _/bits>> = crypto:rand_bytes(Bytes), 
    Result. 
1

Один из способов, что вы будете в состоянии сделать это:

<<(rand:uniform(MaxNum)):(rand:uniform(MaxBits))>> 

Или же, если вы хотите использовать криптографический модуль:

<<(crypto:rand_uniform(MinNum, MaxNum)):(crypto:rand_uniform(MinBits, MaxBits))>> 
Смежные вопросы