Class DiscreteUniformDistribution
java.lang.Object
com.github.tommyettinger.random.distribution.Distribution
com.github.tommyettinger.random.distribution.DiscreteUniformDistribution
A two-parameter discrete distribution with integer range between the given parameters, both inclusive.
- See Also:
-
Field Summary
Fields inherited from class com.github.tommyettinger.random.distribution.Distribution
generator
-
Constructor Summary
ConstructorDescriptionUses anAceRandom
, alpha = 0, beta = 1 .DiscreteUniformDistribution
(int alpha, int beta) Uses anAceRandom
and the given alpha and beta.DiscreteUniformDistribution
(EnhancedRandom generator, int alpha, int beta) Uses the given EnhancedRandom directly. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Returns an exact copy of this Distribution, with the same parameters and a copy of the generator.int
getAlpha()
int
getBeta()
double
Gets the maximum possible value of distributed random numbers.double
getMean()
Gets the mean of distributed random numbers.double
Gets the median of distributed random numbers.double
Gets the minimum possible value of distributed random numbers.double[]
getMode()
Gets the mode(s) of distributed random numbers.double
Gets the value of parameter "A" as a double.double
Gets the value of parameter "B" as a double.getTag()
Gets the tag used to identify this type of Distribution, as a String.double
Gets the variance of distributed random numbers.double
Generates a double using this distribution.static double
sample
(EnhancedRandom generator, int alpha, int beta) boolean
setParameters
(double a, double b, double c) Sets all parameters and returns true if they are valid, otherwise leaves parameters unchanged and returns false.Methods inherited from class com.github.tommyettinger.random.distribution.Distribution
equals, getParameterC, stringDeserialize, stringDeserialize, stringSerialize, stringSerialize, toString
-
Constructor Details
-
DiscreteUniformDistribution
public DiscreteUniformDistribution()Uses anAceRandom
, alpha = 0, beta = 1 . -
DiscreteUniformDistribution
public DiscreteUniformDistribution(int alpha, int beta) Uses anAceRandom
and the given alpha and beta. -
DiscreteUniformDistribution
Uses the given EnhancedRandom directly. Uses the given alpha and beta.
-
-
Method Details
-
getTag
Description copied from class:Distribution
Gets the tag used to identify this type of Distribution, as a String. This tag should be unique. Unlike the tags for EnhancedRandom types, the names here can vary in length.- Specified by:
getTag
in classDistribution
- Returns:
- a unique String identifier for this type of Distribution; must be non-null, can be any non-zero length
-
copy
Description copied from class:Distribution
Returns an exact copy of this Distribution, with the same parameters and a copy of the generator.- Specified by:
copy
in classDistribution
- Returns:
- an exact copy of this Distribution
-
getAlpha
public int getAlpha() -
getBeta
public int getBeta() -
getParameterA
public double getParameterA()Description copied from class:Distribution
Gets the value of parameter "A" as a double. This corresponds to parameter "A" inDistribution.setParameters(double, double, double)
; it is usually called by some other name in the generator, and may not be stored as a double internally.
This defaults to always returningDouble.NaN
, but any parameters a distribution actually uses should be overridden to return the actual parameter, which is almost certainly not going to be NaN. If a getParameter method returns NaN, you can generally safely assume that the parameter is not used by this distribution.- Overrides:
getParameterA
in classDistribution
- Returns:
- the value of parameter "A" as a double.
-
getParameterB
public double getParameterB()Description copied from class:Distribution
Gets the value of parameter "B" as a double. This corresponds to parameter "B" inDistribution.setParameters(double, double, double)
; it is usually called by some other name in the generator, and may not be stored as a double internally.
This defaults to always returningDouble.NaN
, but any parameters a distribution actually uses should be overridden to return the actual parameter, which is almost certainly not going to be NaN. If a getParameter method returns NaN, you can generally safely assume that the parameter is not used by this distribution.- Overrides:
getParameterB
in classDistribution
- Returns:
- the value of parameter "B" as a double.
-
getMaximum
public double getMaximum()Description copied from class:Distribution
Gets the maximum possible value of distributed random numbers.- Specified by:
getMaximum
in classDistribution
- Returns:
- the maximum possible value of distributed random numbers
-
getMean
public double getMean()Description copied from class:Distribution
Gets the mean of distributed random numbers.- Specified by:
getMean
in classDistribution
- Returns:
- the mean of distributed random numbers
-
getMedian
public double getMedian()Description copied from class:Distribution
Gets the median of distributed random numbers.- Specified by:
getMedian
in classDistribution
- Returns:
- the median of distributed random numbers
-
getMinimum
public double getMinimum()Description copied from class:Distribution
Gets the minimum possible value of distributed random numbers.- Specified by:
getMinimum
in classDistribution
- Returns:
- the minimum possible value of distributed random numbers
-
getMode
public double[] getMode()Description copied from class:Distribution
Gets the mode(s) of distributed random numbers.- Specified by:
getMode
in classDistribution
- Returns:
- the mode(s) of distributed random numbers
-
getVariance
public double getVariance()Description copied from class:Distribution
Gets the variance of distributed random numbers.- Specified by:
getVariance
in classDistribution
- Returns:
- the variance of distributed random numbers
-
setParameters
public boolean setParameters(double a, double b, double c) Sets all parameters and returns true if they are valid, otherwise leaves parameters unchanged and returns false.- Specified by:
setParameters
in classDistribution
- Parameters:
a
- alpha; will be cast to int, and should be less than or equal to betab
- beta; will be cast to int, and should be greater than or equal to alphac
- ignored- Returns:
- true if the parameters given are valid and will be used
-
nextDouble
public double nextDouble()Description copied from class:Distribution
Generates a double using this distribution.- Specified by:
nextDouble
in classDistribution
- Returns:
- a distributed double
-
sample
-