在给定多个位的情况下生成随机二进制对象的最有效方法是什么?我理解crypto:rand_bytes
函数是一个选项,但位数不一定是8的乘法。
答案 0 :(得分:6)
rand_bits(Bits) ->
Bytes = (Bits + 7) div 8,
<<Result:Bits/bits, _/bits>> = crypto:rand_bytes(Bytes),
Result.
答案 1 :(得分:1)
您将能够做到的一种方式是:
<<(rand:uniform(MaxNum)):(rand:uniform(MaxBits))>>
如果您希望使用加密模块,也可以这样:
<<(crypto:rand_uniform(MinNum, MaxNum)):(crypto:rand_uniform(MinBits, MaxBits))>>