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] 17 75 fd ca f6 78 b0 ca dc 4c
Bytes are 8 bit and hence can have 2^8 = 256 possible
values.
as.numeric(rnd)
[1] 23 117 253 202 246 120 176 202 220 76
Each random byte can be decomposed into 8 random bits (booleans)
x <- rand_bytes(1)
as.logical(rawToBits(x))
[1] FALSE FALSE FALSE TRUE TRUE FALSE 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.90901258 0.85826899 0.69846234 0.01220958 0.13996065 0.39958118
[7] 0.30021616 0.19891951 0.43079215 0.72606344
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.