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] b7 c6 a5 92 15 ba 15 4b bd 32
Bytes are 8 bit and hence can have 2^8 = 256
possible
values.
as.numeric(rnd)
[1] 183 198 165 146 21 186 21 75 189 50
Each random byte can be decomposed into 8 random bits (booleans)
x <- rand_bytes(1)
as.logical(rawToBits(x))
[1] TRUE TRUE TRUE FALSE FALSE TRUE FALSE 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.0004230133 0.8368973372 0.1862599679 0.5951640988 0.2668045581
[6] 0.7206053790 0.3472972546 0.7298079467 0.6882157361 0.1263659289
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.