The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
The rand_bytes
function binds to RAND_bytes in
OpenSSL to generate cryptographically strong pseudo-random bytes. See
the OpenSSL documentation for what this means.
rnd <- rand_bytes(10)
print(rnd)
[1] 48 36 c4 b3 0d 72 46 6e 69 5f
Bytes are 8 bit and hence can have 2^8 = 256
possible
values.
as.numeric(rnd)
[1] 72 54 196 179 13 114 70 110 105 95
Each random byte can be decomposed into 8 random bits (booleans)
x <- rand_bytes(1)
as.logical(rawToBits(x))
[1] TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE
rand_num
is a simple (2 lines) wrapper to
rand_bytes
to generate random numbers (doubles) between 0
and 1.
rand_num(10)
[1] 0.53612241 0.32709521 0.23172633 0.51010999 0.02179227 0.58268465
[7] 0.36700077 0.03960349 0.78600505 0.69689067
To map random draws from [0,1] into a probability density, we can use
a Cumulative
Distribution Function. For example we can combine qnorm
and rand_num
to simulate rnorm
:
# Secure rnorm
x <- qnorm(rand_num(1000), mean = 100, sd = 15)
hist(x)
Same for discrete distributions:
# Secure rbinom
y <- qbinom(rand_num(1000), size = 20, prob = 0.1)
hist(y, breaks = -.5:(max(y)+1))
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.