dice-entropy-conduit-1.0.0.1: Cryptographically secure n-sided dice via rejection sampling.
This library uses rejection sampling to provide cryptographically secure
n
-sided dice rolls and random sampling (within a given range).
The number of used random bits is close to the information-theoretic optimal
bound.
Usage:
If we wanted to use the system-specific entropy source (systemEntropy
) to
produce 10 dice rolls of a 6-sided dice (i.e. range [0,5]), we could write:
> systemEntropy $$ diceRolls 6 =$= CL.take 10 [5,1,3,3,0,5,3,2,2,1]
The function testPerformance
yields the actual number of consumed random
bits:
> testPerformance 12 10000 Generated 10000 random samples in range [0,11] Average number of bits used: 3.5904 Entropy lower bound on the number of required bits: 3.5849625007211565 Performance ratio: 1.0015167520658164
Feedback is welcome!
Signatures
Modules
- System