3
给定多个位,生成随机二进制对象的最有效方法是什么?据我所知,crypto:rand_bytes
功能将是一种选择,但比特数不一定必须是8Erlang生成随机二进制
给定多个位,生成随机二进制对象的最有效方法是什么?据我所知,crypto:rand_bytes
功能将是一种选择,但比特数不一定必须是8Erlang生成随机二进制
rand_bits(Bits) ->
Bytes = (Bits + 7) div 8,
<<Result:Bits/bits, _/bits>> = crypto:rand_bytes(Bytes),
Result.
的一种方式,你将能够做到这一点乘法是:
<<(rand:uniform(MaxNum)):(rand:uniform(MaxBits))>>
或者同样的方式如果你想使用的密码模块:
<<(crypto:rand_uniform(MinNum, MaxNum)):(crypto:rand_uniform(MinBits, MaxBits))>>
如果它是随机的,那么你总是可以削减不必要的位。不会有太大的变化。 – Amiramix
@Amiramix我将如何实现这一点呢? –