Interface RandomData
-
- All Known Implementing Classes:
RandomDataImpl
public interface RandomData
Random data generation utilities.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description double
nextExponential(double mean)
Generates a random value from the exponential distribution with expected value =mean
.double
nextGaussian(double mu, double sigma)
Generates a random value from the Normal (or Gaussian) distribution with the given mean and standard deviation.java.lang.String
nextHexString(int len)
Generates a random string of hex characters of lengthlen
.int
nextInt(int lower, int upper)
Generates a uniformly distributed random integer betweenlower
andupper
(endpoints included).long
nextLong(long lower, long upper)
Generates a uniformly distributed random long integer betweenlower
andupper
(endpoints included).int[]
nextPermutation(int n, int k)
Generates an integer array of lengthk
whose entries are selected randomly, without repetition, from the integers0 through n-1
(inclusive).long
nextPoisson(double mean)
Generates a random value from the Poisson distribution with the given mean.java.lang.Object[]
nextSample(java.util.Collection<?> c, int k)
Returns an array ofk
objects selected randomly from the Collectionc
.java.lang.String
nextSecureHexString(int len)
Generates a random string of hex characters from a secure random sequence.int
nextSecureInt(int lower, int upper)
Generates a uniformly distributed random integer betweenlower
andupper
(endpoints included) from a secure random sequence.long
nextSecureLong(long lower, long upper)
Generates a random long integer betweenlower
andupper
(endpoints included).double
nextUniform(double lower, double upper)
Generates a uniformly distributed random value from the open interval (lower
,upper
) (i.e., endpoints excluded).
-
-
-
Method Detail
-
nextHexString
java.lang.String nextHexString(int len)
Generates a random string of hex characters of lengthlen
.The generated string will be random, but not cryptographically secure. To generate cryptographically secure strings, use
nextSecureHexString
Preconditions:
len > 0
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
len
- the length of the string to be generated- Returns:
- random string of hex characters of length
len
-
nextInt
int nextInt(int lower, int upper)
Generates a uniformly distributed random integer betweenlower
andupper
(endpoints included).The generated integer will be random, but not cryptographically secure. To generate cryptographically secure integer sequences, use
nextSecureInt
.Preconditions:
lower < upper
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
lower
- lower bound for generated integerupper
- upper bound for generated integer- Returns:
- a random integer greater than or equal to
lower
and less than or equal toupper
.
-
nextLong
long nextLong(long lower, long upper)
Generates a uniformly distributed random long integer betweenlower
andupper
(endpoints included).The generated long integer values will be random, but not cryptographically secure. To generate cryptographically secure sequences of longs, use
nextSecureLong
Preconditions:
lower < upper
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
lower
- lower bound for generated integerupper
- upper bound for generated integer- Returns:
- a random integer greater than or equal to
lower
and less than or equal toupper
.
-
nextSecureHexString
java.lang.String nextSecureHexString(int len)
Generates a random string of hex characters from a secure random sequence.If cryptographic security is not required, use
nextHexString()
.Preconditions:
len > 0
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
len
- length of return string- Returns:
- the random hex string
-
nextSecureInt
int nextSecureInt(int lower, int upper)
Generates a uniformly distributed random integer betweenlower
andupper
(endpoints included) from a secure random sequence.Sequences of integers generated using this method will be cryptographically secure. If cryptographic security is not required,
nextInt
should be used instead of this method.Definition: Secure Random Sequence
Preconditions:
lower < upper
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
lower
- lower bound for generated integerupper
- upper bound for generated integer- Returns:
- a random integer greater than or equal to
lower
and less than or equal toupper
.
-
nextSecureLong
long nextSecureLong(long lower, long upper)
Generates a random long integer betweenlower
andupper
(endpoints included).Sequences of long values generated using this method will be cryptographically secure. If cryptographic security is not required,
nextLong
should be used instead of this method.Definition: Secure Random Sequence
Preconditions:
lower < upper
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
lower
- lower bound for generated integerupper
- upper bound for generated integer- Returns:
- a long integer greater than or equal to
lower
and less than or equal toupper
.
-
nextPoisson
long nextPoisson(double mean)
Generates a random value from the Poisson distribution with the given mean.Definition: Poisson Distribution
Preconditions:
- The specified mean must be positive (otherwise an IllegalArgumentException is thrown.)
- Parameters:
mean
- Mean of the distribution- Returns:
- poisson deviate with the specified mean
-
nextGaussian
double nextGaussian(double mu, double sigma)
Generates a random value from the Normal (or Gaussian) distribution with the given mean and standard deviation.Definition: Normal Distribution
Preconditions:
sigma > 0
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
mu
- Mean of the distributionsigma
- Standard deviation of the distribution- Returns:
- random value from Gaussian distribution with mean = mu, standard deviation = sigma
-
nextExponential
double nextExponential(double mean)
Generates a random value from the exponential distribution with expected value =mean
.Definition: Exponential Distribution
Preconditions:
mu >= 0
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
mean
- Mean of the distribution- Returns:
- random value from exponential distribution
-
nextUniform
double nextUniform(double lower, double upper)
Generates a uniformly distributed random value from the open interval (lower
,upper
) (i.e., endpoints excluded).Definition: Uniform Distribution
lower
andupper - lower
are the location and scale parameters, respectively.Preconditions:
lower < upper
(otherwise an IllegalArgumentException is thrown.)
- Parameters:
lower
- lower endpoint of the interval of supportupper
- upper endpoint of the interval of support- Returns:
- uniformly distributed random value between lower and upper (exclusive)
-
nextPermutation
int[] nextPermutation(int n, int k)
Generates an integer array of lengthk
whose entries are selected randomly, without repetition, from the integers0 through n-1
(inclusive).Generated arrays represent permutations of
n
takenk
at a time.Preconditions:
-
k <= n
-
n > 0
- Parameters:
n
- domain of the permutationk
- size of the permutation- Returns:
- random k-permutation of n
-
-
nextSample
java.lang.Object[] nextSample(java.util.Collection<?> c, int k)
Returns an array ofk
objects selected randomly from the Collectionc
.Sampling from
c
is without replacement; but ifc
contains identical objects, the sample may include repeats. If all elements ofc
are distinct, the resulting object array represents a Simple Random Sample of sizek
from the elements ofc
.Preconditions:
- k must be less than or equal to the size of c
- c must not be empty
- Parameters:
c
- collection to be sampledk
- size of the sample- Returns:
- random sample of k elements from c
-
-