Class BinomialDistribution
java.lang.Object
com.github.tommyettinger.random.distribution.Distribution
com.github.tommyettinger.random.distribution.BinomialDistribution
- All Implemented Interfaces:
Externalizable
,Serializable
A two-parameter discrete distribution with integer range from 0 (inclusive) to beta (inclusive).
-
Field Summary
Fields inherited from class com.github.tommyettinger.random.distribution.Distribution
generator
-
Constructor Summary
ConstructorDescriptionUses anAceRandom
, alpha = 0.5, beta = 1 .BinomialDistribution
(double alpha, int beta) Uses anAceRandom
and the given beta and alpha.BinomialDistribution
(EnhancedRandom generator, double 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.double
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, double 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, readExternal, stringDeserialize, stringDeserialize, stringSerialize, stringSerialize, toString, writeExternal
-
Constructor Details
-
BinomialDistribution
public BinomialDistribution()Uses anAceRandom
, alpha = 0.5, beta = 1 . -
BinomialDistribution
public BinomialDistribution(double alpha, int beta) Uses anAceRandom
and the given beta and alpha. -
BinomialDistribution
Uses the given EnhancedRandom directly. Uses the given beta and alpha.
-
-
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 double 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; should be greater than or equal to 0.0 and less than or equal to 1.0b
- beta; will be cast to an int, and should be greater or equal to 0c
- 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
-