struct Alea::Random(G)
- Alea::Random(G)
- Struct
- Value
- Object
Overview
Alea::Random
provides the interface for pseudo-random generations and distribution sampling.
NOTE due to this, you still need to specify the generator as the generic type, as it does not accept a default one.
seed = 9377
random = Alea::Random(Alea::XSR128).new(seed)
random.float # => 0.08153691876972058
# Passing an instance of a PRNG:
xsr = Alea::XSR256.new 9377, 2353
random = Alea::Random.new xsr
random.prng # => Alea::XSR256
As long as it includes the Alea::PRNG
module, you can build your own generator: check
out the example provided in
the documentation to make it a valid extension for Alea::Random
.
The following implementations are taken from numpy.
Defined in:
Constructors
-
.new(seed32 : Int, seed64 : Int)
Initializes the PRNG with initial seeds.
-
.new(seed : Int)
Initializes the PRNG with initial seed.
-
.new(prng : G)
Initializes the PRNG with initial instance.
-
.new
Initializes the PRNG with initial state readed from system resources.
Instance Method Summary
-
#beta(*, a, b)
Generate a beta-distributed, pseudo-random
Float64
in range[0, 1)
. -
#beta32(*, a, b)
Generate a beta-distributed, pseudo-random
Float32
in range[0, 1)
. -
#chisq(df)
Generate a chi-square-distributed, pseudo-random
Float64
. -
#chisq32(df)
Generate a chi-square-distributed, pseudo-random
Float32
. -
#exp(scale = 1.0) : Float64
Generate a exp-distributed, pseudo-random
Float64
. -
#exp32(scale = 1.0_f32) : Float32
Generate a exp-distributed, pseudo-random
Float32
. -
#f(df1, df2)
Generate a f-snedecor-distributed, pseudo-random
Float64
. -
#f32(df1, df2)
Generate a f-snedecor-distributed, pseudo-random
Float32
. -
#float(range : Range(Number, Number)) : Float64
Generate a uniform-distributed, pseudo-random
Float64
in fixed range. -
#float(max : Number) : Float64
Generate a uniform-distributed, pseudo-random
Float64
in range[0.0, max)
. -
#float : Float64
Generate a uniform-distributed, pseudo-random
Float64
in range[0.0, 1.0)
. -
#float(min : Number, max : Number) : Float64
Generate a uniform-distributed, pseudo-random
Float64
in fixed range. -
#float32(range : Range(Number, Number)) : Float32
Generate a uniform-distributed, pseudo-random
Float64
in fixed range. -
#float32 : Float32
Generate a uniform-distributed, pseudo-random
Float32
in range[0.0, 1.0)
. -
#float32(min : Number, max : Number) : Float32
Generate a uniform-distributed, pseudo-random
Float32
in fixed range. -
#float32(max : Number) : Float32
Generate a uniform-distributed, pseudo-random
Float32
in range[0.0, max)
. -
#gamma(shape, scale = 1.0)
Generate a gamma-distributed, pseudo-random
Float64
. -
#gamma32(shape, scale = 1.0)
Generate a gamma-distributed, pseudo-random
Float32
. -
#laplace(loc = 0.0, scale = 1.0)
Generate a laplace-distributed, pseudo-random
Float64
. -
#laplace32(loc = 0.0_f32, scale = 1.0_f32)
Generate a laplace-distributed, pseudo-random
Float32
. -
#lognormal(loc = 0.0, sigma = 1.0)
Generate a log-normal-distributed, pseudo-random
Float64
. -
#lognormal32(loc = 0.0_f32, sigma = 1.0_f32)
Generate a log-normal-distributed, pseudo-random
Float32
. -
#next_beta(*, a : Float64, b : Float64) : Float64
Generate a beta-distributed, pseudo-random
Float64
in range[0, 1)
. -
#next_beta32(*, a : Float32, b : Float32) : Float32
Generate a beta-distributed, pseudo-random
Float32
in range[0, 1)
. -
#next_chisq(df : Float64) : Float64
Generate a chi-square-distributed, pseudo-random
Float64
. -
#next_chisq32(df : Float32) : Float32
Generate a chi-square-distributed, pseudo-random
Float32
. -
#next_exp : Float64
Generate a exp-distributed, pseudo-random
Float64
. -
#next_exp(scale : Float64) : Float64
Generate a exp-distributed, pseudo-random
Float64
. -
#next_exp32 : Float32
Generate a exp-distributed, pseudo-random
Float32
. -
#next_exp32(scale : Float32) : Float32
Generate a exp-distributed, pseudo-random
Float32
. -
#next_f32 : Float32
Returns the next generated
Float32
. -
#next_f64 : Float64
Returns the next generated
Float64
. -
#next_float(max : Float64) : Float64
Generate a uniform-distributed, pseudo-random
Float64
in range[0, max)
. -
#next_float(min : Float64, max : Float64) : Float64
Generate a uniform-distributed, pseudo-random
Float64
in fixed range. -
#next_float32(max : Float32) : Float32
Generate a uniform-distributed, pseudo-random
Float32
in range[0, max)
. -
#next_float32(min : Float32, max : Float32) : Float32
Generate a uniform-distributed, pseudo-random
Float32
in fixed range. -
#next_fs(df1 : Float64, df2 : Float64) : Float64
Generate a f-snedecor-distributed, pseudo-random
Float64
. -
#next_fs32(df1 : Float32, df2 : Float32) : Float32
Generate a f-snedecor-distributed, pseudo-random
Float32
. -
#next_gamma(shape : Float64, scale : Float64) : Float64
Generate a gamma-distributed, pseudo-random
Float64
. -
#next_gamma(shape : Float64) : Float64
Generate a gamma-distributed, pseudo-random
Float64
. -
#next_gamma32(shape : Float32, scale : Float32) : Float32
Generate a gamma-distributed, pseudo-random
Float32
. -
#next_gamma32(shape : Float32) : Float32
Generate a gamma-distributed, pseudo-random
Float32
. -
#next_laplace : Float64
Generate a laplace-distributed, pseudo-random
Float64
. -
#next_laplace(loc : Float64, scale : Float64) : Float64
Generate a laplace-distributed, pseudo-random
Float64
. -
#next_laplace(loc : Float64) : Float64
Generate a laplace-distributed, pseudo-random
Float64
. -
#next_laplace32 : Float32
Generate a laplace-distributed, pseudo-random
Float32
. -
#next_laplace32(loc : Float32) : Float32
Generate a laplace-distributed, pseudo-random
Float32
. -
#next_laplace32(loc : Float32, scale : Float32) : Float32
Generate a laplace-distributed, pseudo-random
Float32
. -
#next_lognormal : Float64
Generate a log-normal-distributed, pseudo-random
Float64
. -
#next_lognormal(loc : Float64) : Float64
Generate a log-normal-distributed, pseudo-random
Float64
. -
#next_lognormal(loc : Float64, sigma : Float64) : Float64
Generate a log-normal-distributed, pseudo-random
Float64
. -
#next_lognormal32 : Float32
Generate a log-normal-distributed, pseudo-random
Float32
. -
#next_lognormal32(loc : Float32) : Float32
Generate a log-normal-distributed, pseudo-random
Float32
. -
#next_lognormal32(loc : Float32, sigma : Float32) : Float32
Generate a log-normal-distributed, pseudo-random
Float32
. -
#next_normal : Float64
Generate a normal-distributed, pseudo-random
Float64
. -
#next_normal(loc : Float64) : Float64
Generate a normal-distributed, pseudo-random
Float64
. -
#next_normal(loc : Float64, sigma : Float64) : Float64
Generate a normal-distributed, pseudo-random
Float64
. -
#next_normal32 : Float32
Generate a normal-distributed, pseudo-random
Float32
. -
#next_normal32(loc : Float32, sigma : Float32) : Float32
Generate a normal-distributed, pseudo-random
Float32
. -
#next_normal32(loc : Float32) : Float32
Generate a normal-distributed, pseudo-random
Float32
. -
#next_poisson : Int64
Generate a poisson-distributed, pseudo-random
Int64
. -
#next_poisson(lam : Float64) : Int64
Generate a poisson-distributed, pseudo-random
Int64
. -
#next_t(df : Float64) : Float64
Generate a t-student-distributed, pseudo-random
Float64
. -
#next_t32(df : Float32) : Float32
Generate a t-student-distributed, pseudo-random
Float32
. -
#next_u32 : UInt32
Returns the next generated
UInt32
. -
#next_u64 : UInt64
Returns the next generated
UInt64
. -
#next_uint(min : UInt64, max : UInt64) : UInt64
Generate a uniform-distributed, pseudo-random
UInt64
in fixed range. -
#next_uint(max : UInt64) : UInt64
Generate a uniform-distributed, pseudo-random
UInt64
in range[0, max)
. -
#next_uint32(min : UInt32, max : UInt32) : UInt32
Generate a uniform-distributed, pseudo-random
UInt32
in fixed range. -
#next_uint32(max : UInt32) : UInt32
Generate a uniform-distributed, pseudo-random
UInt32
in range[0, max)
. -
#normal(loc = 0.0, sigma = 1.0)
Generate a normal-distributed, pseudo-random
Float64
. -
#normal32(loc = 0.0, sigma = 1.0) : Float32
Generate a normal-distributed, pseudo-random
Float32
. -
#poisson(lam = 1.0)
Generate a poisson-distributed, pseudo-random
Int64
. -
#prng : G
The PRNG in use by this struct.
-
#t(df)
Generate a t-student-distributed, pseudo-random
Float64
. -
#t32(df)
Generate a t-student-distributed, pseudo-random
Float32
. -
#uint : UInt64
Generate a uniform-distributed, pseudo-random
UInt64
. -
#uint(range : Range(Number, Number)) : UInt64
Generate a uniform-distributed, pseudo-random
UInt64
in fixed range. -
#uint(max : Number) : UInt64
Generate a uniform-distributed, pseudo-random
UInt64
in range[0, max)
. -
#uint(min : Number, max : Number) : UInt64
Generate a uniform-distributed, pseudo-random
UInt64
in fixed range. -
#uint32 : UInt32
Generate a uniform-distributed, pseudo-random
UInt32
. -
#uint32(range : Range(Number, Number)) : UInt32
Generate a uniform-distributed, pseudo-random
UInt32
in fixed range. -
#uint32(max : Number) : UInt32
Generate a uniform-distributed, pseudo-random
UInt32
in range[0, max)
. -
#uint32(min : Number, max : Number) : UInt32
Generate a uniform-distributed, pseudo-random
UInt32
in fixed range.
Constructor Detail
Initializes the PRNG with initial seeds.
@parameters:
seed32
: value as input to init. the state of 32-bit generators of#prng
.seed64
: value as input to init. the state of 64-bit generators of#prng
.
@exceptions:
Alea::UndefinedError
if any ofseed32
orseed64
is negative.
Initializes the PRNG with initial seed.
@parameters:
seed
: initial seed as input for generating the state of#prng
.
@exceptions:
Alea::UndefinedError
ifseed
is negative.
Initializes the PRNG with initial instance.
NOTE due to this, you still need to specify the generator as the generic type, as it does not accept a default one.
@parameters:
#prng
: the PRNG instance itself.
Instance Method Detail
Generate a beta-distributed, pseudo-random Float64
in range [0, 1)
.
@note: named arguments are mandatory to prevent ambiguity.
@parameters:
a
: shape parameter of the distribution; usually mentioned asα
.b
: shape parameter of the distribution; usually mentioned asβ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
if any ofa
orb
is negative or zero.
Generate a beta-distributed, pseudo-random Float32
in range [0, 1)
.
@note: named arguments are mandatory to prevent ambiguity.
@parameters:
a
: shape parameter of the distribution; usually mentioned asα
.b
: shape parameter of the distribution; usually mentioned asβ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
if any ofa
orb
is negative or zero.
Generate a chi-square-distributed, pseudo-random Float64
.
@parameters:
df
: degrees of freedom of the distribution; usually mentioned ask
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifdf
is negative or zero.
Generate a chi-square-distributed, pseudo-random Float32
.
@parameters:
df
: degrees of freedom of the distribution; usually mentioned ask
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifdf
is negative or zero.
Generate a exp-distributed, pseudo-random Float64
.
@parameters:
scale
: scale parameter of the distribution; usually mentioned asλ^-1
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifscale
is negative or zero.
Generate a exp-distributed, pseudo-random Float32
.
@parameters:
scale
: scale parameter of the distribution; usually mentioned asλ^-1
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifscale
is negative or zero.
Generate a f-snedecor-distributed, pseudo-random Float64
.
@parameters:
df1
: degrees of freedom of the underlying chi-square distribution, numerator side; usually mentioned asm
.df2
: degrees of freedom of the underlying chi-square distribution, denominator side; usually mentioned asn
.
@note: due to homonymy with float methods, the unparsed method
is indentified with #next_fs
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifdf
is negative or zero.
Generate a f-snedecor-distributed, pseudo-random Float32
.
@parameters:
df1
: degrees of freedom of the underlying chi-square distribution, numerator side; usually mentioned asm
.df2
: degrees of freedom of the underlying chi-square distribution, denominator side; usually mentioned asn
.
@note: due to homonymy with float methods, the unparsed method
is indentified with #next_fs32
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifdf
is negative or zero.
Generate a uniform-distributed, pseudo-random Float64
in fixed range.
@parameters:
range
: range parameter, inclusive or exclusive, of the distribution:range.begin
: left bound parameter of range of the distribution; usually mentioned asa
.range.end
: right bound parameter of range of the distribution; usually mentioned asb
.
@notes:
- inclusive means
[range.begin, range.end]
. - exclusive means
[range.begin, range.end)
. - see
Range
from Crystal stdlib.
@examples:
range_in = 10.0..9377.0
range_in # Range(Float64, Float64), end-inclusive
range_ex = 10.0...9377.0
range_ex # Range(Float64, Float64), end-exclusive
random = Alea::Random.new
random.float(range_in) # => 9113.861259040154
random.float(range_ex) # => 7701.2778313581175
@exceptions:
Alea::NaNError
if any of the arguments bound isNaN
.Alea::InfinityError
if any of the arguments bound isInfinity
.Alea::UndefinedError
ifrange.end
is less thanrange.begin
.Alea::UndefinedError
ifrange
is not end-inclusive but bounds are the same.
Generate a uniform-distributed, pseudo-random Float64
in range [0.0, max)
.
@parameters:
max
: right bound parameter of range of the distribution; usually mentioned asb
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifmax
is negative or zero.
Generate a uniform-distributed, pseudo-random Float64
in range [0.0, 1.0)
.
@references: #next_f64
.
Generate a uniform-distributed, pseudo-random Float64
in fixed range.
@parameters:
min
: left bound parameter of range of the distribution; usually mentioned asa
.max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random Float64
in fixed range.
@parameters:
range
: range parameter, inclusive or exclusive, of the distribution:range.begin
: left bound parameter of range of the distribution; usually mentioned asa
.range.end
: right bound parameter of range of the distribution; usually mentioned asb
.
@notes:
- inclusive means
[range.begin, range.end]
. - exclusive means
[range.begin, range.end)
. - see
Range
from Crystal stdlib.
@examples:
range_in = 10.0..9377.0
range_in # Range(Float64, Float64), end-inclusive
range_ex = 10.0...9377.0
range_ex # Range(Float64, Float64), end-exclusive
random = Alea::Random.new
random.float32(range_in) # => 950.3449
random.float32(range_ex) # => 3455.0183
@exceptions:
Alea::NaNError
if any of the arguments bound isNaN
.Alea::InfinityError
if any of the arguments bound isInfinity
.Alea::UndefinedError
ifrange.end
is less thanrange.begin
.Alea::UndefinedError
ifrange
is not end-inclusive but bounds are the same.
Generate a uniform-distributed, pseudo-random Float32
in range [0.0, 1.0)
.
@references: #next_f32
.
Generate a uniform-distributed, pseudo-random Float32
in fixed range.
@parameters:
min
: left bound parameter of range of the distribution; usually mentioned asa
.max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random Float32
in range [0.0, max)
.
@parameters:
max
: right bound parameter of range of the distribution; usually mentioned asb
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifmax
is negative or zero.
Generate a gamma-distributed, pseudo-random Float64
.
@parameters:
shape
: shape parameter of the distribution; usually mentioned ask
.scale
: scale parameter of the distribution; usually mentioned asθ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
if any ofshape
orscale
is negative or zero.
Generate a gamma-distributed, pseudo-random Float32
.
@parameters:
shape
: shape parameter of the distribution; usually mentioned ask
.scale
: scale parameter of the distribution; usually mentioned asθ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
if any ofshape
orscale
is negative or zero.
Generate a laplace-distributed, pseudo-random Float64
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.scale
: scale parameter of the distribution; usually mentioned asb
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifscale
is negative or zero.
Generate a laplace-distributed, pseudo-random Float32
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.scale
: scale parameter of the distribution; usually mentioned asb
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifscale
is negative or zero.
Generate a log-normal-distributed, pseudo-random Float64
.
@parameters:
loc
: centrality parameter, or mean of the underlying normal distribution; usually mentioned asμ
.sigma
: scale parameter, or standard deviation of the underlying normal distribution; usually mentioned asσ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifsigma
is negative or zero.
Generate a log-normal-distributed, pseudo-random Float32
.
@parameters:
loc
: centrality parameter, or mean of the underlying normal distribution; usually mentioned asμ
.sigma
: scale parameter, or standard deviation of the underlying normal distribution; usually mentioned asσ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifsigma
is negative or zero.
Generate a beta-distributed, pseudo-random Float64
in range [0, 1)
.
Unparsed version of #beta
.
@note: named arguments are mandatory to prevent ambiguity.
@parameters:
a
: shape parameter of the distribution; usually mentioned asα
.b
: shape parameter of the distribution; usually mentioned asβ
.
Generate a beta-distributed, pseudo-random Float32
in range [0, 1)
.
Unparsed version of #beta32
.
@note: named arguments are mandatory to prevent ambiguity.
@parameters:
a
: shape parameter of the distribution; usually mentioned asα
.b
: shape parameter of the distribution; usually mentioned asβ
.
Generate a chi-square-distributed, pseudo-random Float64
.
Unparsed version of #chisq
.
@parameters:
df
: degrees of freedom of the distribution; usually mentioned ask
.
Generate a chi-square-distributed, pseudo-random Float32
.
Unparsed version of #chisq32
.
@parameters:
df
: degrees of freedom of the distribution; usually mentioned ask
.
Generate a exp-distributed, pseudo-random Float64
.
Unparsed version of #exp
.
@parameters:
scale
: scale parameter of the distribution; usually mentioned asλ^-1
.
Generate a exp-distributed, pseudo-random Float32
.
Unparsed version of #exp32
.
@parameters:
scale
: scale parameter of the distribution; usually mentioned asλ^-1
.
Generate a uniform-distributed, pseudo-random Float64
in range [0, max)
.
Unparsed version for #float
.
@parameters:
max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random Float64
in fixed range.
Unparsed version for #float
.
@parameters:
min
: left bound parameter of range of the distribution; usually mentioned asa
.max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random Float32
in range [0, max)
.
Unparsed version for #float32
.
@parameters:
max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random Float32
in fixed range.
Unparsed version for #float32
.
@parameters:
min
: left bound parameter of range of the distribution; usually mentioned asa
.max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a f-snedecor-distributed, pseudo-random Float64
.
Unparsed version of #f
.
@parameters:
df1
: degrees of freedom of the underlying chi-square distribution, numerator side; usually mentioned asm
.df2
: degrees of freedom of the underlying chi-square distribution, denominator side; usually mentioned asn
.
Generate a f-snedecor-distributed, pseudo-random Float32
.
Unparsed version of #f32
.
@parameters:
df1
: degrees of freedom of the underlying chi-square distribution, numerator side; usually mentioned asm
.df2
: degrees of freedom of the underlying chi-square distribution, denominator side; usually mentioned asn
.
Generate a gamma-distributed, pseudo-random Float64
.
Unparsed version of #gamma
.
@parameters:
shape
: shape parameter of the distribution; usually mentioned ask
.scale
: scale parameter of the distribution; usually mentioned asθ
.
Generate a gamma-distributed, pseudo-random Float64
.
Unparsed version of #gamma
.
@parameters:
shape
: shape parameter of the distribution; usually mentioned ask
.
@note:
scale
is1.0
.
Generate a gamma-distributed, pseudo-random Float32
.
Unparsed version of #gamma
.
@parameters:
shape
: shape parameter of the distribution; usually mentioned ask
.scale
: scale parameter of the distribution; usually mentioned asθ
.
Generate a gamma-distributed, pseudo-random Float32
.
Unparsed version of #gamma32
.
@parameters:
shape
: shape parameter of the distribution; usually mentioned ask
.
@note:
scale
is1.0
.
Generate a laplace-distributed, pseudo-random Float64
.
Unparsed version of #laplace
.
@notes:
loc
is0.0
.scale
is1.0
.
Generate a laplace-distributed, pseudo-random Float64
.
Unparsed version of #laplace
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.scale
: scale parameter of the distribution; usually mentioned asb
.
Generate a laplace-distributed, pseudo-random Float64
.
Unparsed version of #laplace
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.
@notes:
scale
is1.0
.
Generate a laplace-distributed, pseudo-random Float32
.
Unparsed version of #laplace32
.
@notes:
loc
is0.0
.scale
is1.0
.
Generate a laplace-distributed, pseudo-random Float32
.
Unparsed version of #laplace32
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.
@notes:
scale
is1.0
.
Generate a laplace-distributed, pseudo-random Float32
.
Unparsed version of #laplace32
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.scale
: scale parameter of the distribution; usually mentioned asb
.
Generate a log-normal-distributed, pseudo-random Float64
.
Unparsed version of #lognormal
.
@notes:
loc
is0.0
.sigma
is1.0
.
Generate a log-normal-distributed, pseudo-random Float64
.
Unparsed version of #lognormal
.
@parameters:
loc
: centrality parameter, or mean of the underlying normal distribution; usually mentioned asμ
.
@notes:
sigma
is1.0
.
Generate a log-normal-distributed, pseudo-random Float64
.
Unparsed version of #lognormal
.
@parameters:
loc
: centrality parameter, or mean of the underlying normal distribution; usually mentioned asμ
.sigma
: scale parameter, or standard deviation of the underlying normal distribution; usually mentioned asσ
.
Generate a log-normal-distributed, pseudo-random Float32
.
Unparsed version of #lognormal32
.
@notes:
loc
is0.0
.sigma
is1.0
.
Generate a log-normal-distributed, pseudo-random Float32
.
Unparsed version of #lognormal32
.
@parameters:
loc
: centrality parameter, or mean of the underlying normal distribution; usually mentioned asμ
.
@notes:
sigma
is1.0
.
Generate a log-normal-distributed, pseudo-random Float32
.
Unparsed version of #lognormal32
.
@parameters:
loc
: centrality parameter, or mean of the underlying normal distribution; usually mentioned asμ
.sigma
: scale parameter, or standard deviation of the underlying normal distribution; usually mentioned asσ
.
Generate a normal-distributed, pseudo-random Float64
.
Unparsed version of #normal
.
@notes:
loc
is0.0
.sigma
is1.0
.
Generate a normal-distributed, pseudo-random Float64
.
Unparsed version of #normal
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.
@notes:
sigma
is1.0
.
Generate a normal-distributed, pseudo-random Float64
.
Unparsed version of #normal
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.sigma
: scale parameter, or standard deviation of the distribution; usually mentioned asσ
.
Generate a normal-distributed, pseudo-random Float32
.
Unparsed version of #normal32
.
@notes:
loc
is0.0
.sigma
is1.0
.
Generate a normal-distributed, pseudo-random Float32
.
Unparsed version of #normal32
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.sigma
: scale parameter, or standard deviation of the distribution; usually mentioned asσ
.
Generate a normal-distributed, pseudo-random Float32
.
Unparsed version of #normal32
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.
@notes:
sigma
is1.0
.
Generate a poisson-distributed, pseudo-random Int64
.
Unparsed version of #poisson
.
@notes:
lam
is1.0
.
Generate a poisson-distributed, pseudo-random Int64
.
Unparsed version of #poisson
.
@parameters:
lam
: separation parameter of the distribution; usually mentioned asλ
.
Generate a t-student-distributed, pseudo-random Float64
.
Unparsed version of #t
.
@parameters:
df
: degrees of freedom of the distribution; usually mentioned asn
.
Generate a t-student-distributed, pseudo-random Float32
.
Unparsed version of #t32
.
@parameters:
df
: degrees of freedom of the distribution; usually mentioned asn
.
Generate a uniform-distributed, pseudo-random UInt64
in fixed range.
Unparsed version for #uint
.
@parameters:
min
: left bound parameter of range of the distribution; usually mentioned asa
.max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random UInt64
in range [0, max)
.
Unparsed version for #uint
.
@parameters:
max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random UInt32
in fixed range.
Unparsed version for #uint32
.
@parameters:
min
: left bound parameter of range of the distribution; usually mentioned asa
.max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random UInt32
in range [0, max)
.
Unparsed version for #uint32
.
@parameters:
max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a normal-distributed, pseudo-random Float64
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.sigma
: scale parameter, or standard deviation of the distribution; usually mentioned asσ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifsigma
is negative or zero.
Generate a normal-distributed, pseudo-random Float32
.
@parameters:
loc
: centrality parameter, or mean of the distribution; usually mentioned asμ
.sigma
: scale parameter, or standard deviation of the distribution; usually mentioned asσ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifsigma
is negative or zero.
Generate a poisson-distributed, pseudo-random Int64
.
@parameters:
lam
: separation parameter of the distribution; usually mentioned asλ
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
iflam
is negative or zero.
Generate a t-student-distributed, pseudo-random Float64
.
@parameters:
df
: degrees of freedom of the distribution; usually mentioned asn
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifdf
is negative or zero.
Generate a t-student-distributed, pseudo-random Float32
.
@parameters:
df
: degrees of freedom of the distribution; usually mentioned asn
.
@exceptions:
Alea::NaNError
if any of the arguments isNaN
.Alea::InfinityError
if any of the arguments isInfinity
.Alea::UndefinedError
ifdf
is negative or zero.
Generate a uniform-distributed, pseudo-random UInt64
in fixed range.
@parameters:
range
: range parameter, inclusive or exclusive, of the distribution:range.begin
: left bound parameter of range of the distribution; usually mentioned asa
.range.end
: right bound parameter of range of the distribution; usually mentioned asb
.
@notes:
- inclusive means
[range.begin, range.end]
. - exclusive means
[range.begin, range.end)
. - see
Range
from Crystal stdlib.
@examples:
range_in = 10..9377
range_in # Range(Int32, Int32), end-inclusive
range_ex = 10...9377
range_ex # Range(Int32, Int32), end-exclusive
random = Alea::Random.new
random.uint(range_in) # => 2640
random.uint(range_ex) # => 527
@exceptions:
Alea::UndefinedError
ifrange.end
is less thanrange.begin
.Alea::UndefinedError
ifrange
is not end-inclusive but bounds are the same.
Generate a uniform-distributed, pseudo-random UInt64
in range [0, max)
.
@parameters:
max
: right bound parameter of range of the distribution; usually mentioned asb
.
@exceptions:
Alea::UndefinedError
ifmax
is negative or zero.
Generate a uniform-distributed, pseudo-random UInt64
in fixed range.
@parameters:
min
: left bound parameter of range of the distribution; usually mentioned asa
.max
: right bound parameter of range of the distribution; usually mentioned asb
.
Generate a uniform-distributed, pseudo-random UInt32
in fixed range.
@parameters:
range
: range parameter, inclusive or exclusive, of the distribution:range.begin
: left bound parameter of range of the distribution; usually mentioned asa
.range.end
: right bound parameter of range of the distribution; usually mentioned asb
.
@notes:
- inclusive means
[range.begin, range.end]
. - exclusive means
[range.begin, range.end)
. - see
Range
from Crystal stdlib.
@examples:
range_in = 10..9377
range_in # Range(Int32, Int32), end-inclusive
range_ex = 10...9377
range_ex # Range(Int32, Int32), end-exclusive
random = Alea::Random.new
random.uint32(range_in) # => 9260
random.uint32(range_ex) # => 153
@exceptions:
Alea::UndefinedError
ifrange.end
is less thanrange.begin
.Alea::UndefinedError
ifrange
is not end-inclusive but bounds are the same.
Generate a uniform-distributed, pseudo-random UInt32
in range [0, max)
.
@parameters:
max
: right bound parameter of range of the distribution; usually mentioned asb
.
@exceptions:
Alea::UndefinedError
ifmax
is negative or zero.
Generate a uniform-distributed, pseudo-random UInt32
in fixed range.
@parameters:
min
: left bound parameter of range of the distribution; usually mentioned asa
.max
: right bound parameter of range of the distribution; usually mentioned asb
.