org.apache.commons.math3.random.RandomDataGenerator.getRandomGenerator()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(12.1k)|赞(0)|评价(0)|浏览(85)

本文整理了Java中org.apache.commons.math3.random.RandomDataGenerator.getRandomGenerator方法的一些代码示例,展示了RandomDataGenerator.getRandomGenerator的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RandomDataGenerator.getRandomGenerator方法的具体详情如下:
包路径:org.apache.commons.math3.random.RandomDataGenerator
类名称:RandomDataGenerator
方法名:getRandomGenerator

RandomDataGenerator.getRandomGenerator介绍

[英]Returns the RandomGenerator used to generate non-secure random data.

Creates and initializes a default generator if null. Uses a Well19937cgenerator with System.currentTimeMillis() + System.identityHashCode(this))as the default seed.
[中]返回用于生成非安全随机数据的RandomGenerator。
如果为空,则创建并初始化默认生成器。使用Well19937cgenerator和系统。currentTimeMillis()+系统。identityHashCode(this))作为默认种子。

代码示例

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Reseeds the random number generator with the supplied seed.
 * <p>
 * Will create and initialize if null.
 * </p>
 *
 * @param seed the seed value to use
 */
public void reSeed(long seed) {
  getRandomGenerator().setSeed(seed);
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Reseeds the random number generator with
 * {@code System.currentTimeMillis() + System.identityHashCode(this))}.
 */
public void reSeed() {
  getRandomGenerator().setSeed(System.currentTimeMillis() + System.identityHashCode(this));
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Private constructor to allow lazy initialisation of the RNG contained
 * in the {@link #randomData} instance variable.
 *
 * @param binCount number of bins. Must be strictly positive.
 * @param randomData Random data generator.
 * @throws NotStrictlyPositiveException if {@code binCount <= 0}.
 */
private EmpiricalDistribution(int binCount,
               RandomDataGenerator randomData) {
  super(randomData.getRandomGenerator());
  if (binCount <= 0) {
    throw new NotStrictlyPositiveException(binCount);
  }
  this.binCount = binCount;
  this.randomData = randomData;
  binStats = new ArrayList<SummaryStatistics>();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link ZipfDistribution Zipf Distribution}.
 *
 * @param numberOfElements the number of elements of the ZipfDistribution
 * @param exponent the exponent of the ZipfDistribution
 * @return random value sampled from the Zipf(numberOfElements, exponent) distribution
 * @exception NotStrictlyPositiveException if {@code numberOfElements <= 0}
 * or {@code exponent <= 0}.
 */
public int nextZipf(int numberOfElements, double exponent) throws NotStrictlyPositiveException {
  return new ZipfDistribution(getRandomGenerator(), numberOfElements, exponent).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link BetaDistribution Beta Distribution}.
 *
 * @param alpha first distribution shape parameter
 * @param beta second distribution shape parameter
 * @return random value sampled from the beta(alpha, beta) distribution
 */
public double nextBeta(double alpha, double beta) {
  return new BetaDistribution(getRandomGenerator(), alpha, beta,
      BetaDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link ChiSquaredDistribution ChiSquare Distribution}.
 *
 * @param df the degrees of freedom of the ChiSquare distribution
 * @return random value sampled from the ChiSquare(df) distribution
 */
public double nextChiSquare(double df) {
  return new ChiSquaredDistribution(getRandomGenerator(), df,
      ChiSquaredDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link FDistribution F Distribution}.
 *
 * @param numeratorDf the numerator degrees of freedom of the F distribution
 * @param denominatorDf the denominator degrees of freedom of the F distribution
 * @return random value sampled from the F(numeratorDf, denominatorDf) distribution
 * @throws NotStrictlyPositiveException if
 * {@code numeratorDf <= 0} or {@code denominatorDf <= 0}.
 */
public double nextF(double numeratorDf, double denominatorDf) throws NotStrictlyPositiveException {
  return new FDistribution(getRandomGenerator(), numeratorDf, denominatorDf,
      FDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/** {@inheritDoc} */
public double nextGaussian(double mu, double sigma) throws NotStrictlyPositiveException {
  if (sigma <= 0) {
    throw new NotStrictlyPositiveException(LocalizedFormats.STANDARD_DEVIATION, sigma);
  }
  return sigma * getRandomGenerator().nextGaussian() + mu;
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link TDistribution T Distribution}.
 *
 * @param df the degrees of freedom of the T distribution
 * @return random value from the T(df) distribution
 * @throws NotStrictlyPositiveException if {@code df <= 0}
 */
public double nextT(double df) throws NotStrictlyPositiveException {
  return new TDistribution(getRandomGenerator(), df,
      TDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link BinomialDistribution Binomial Distribution}.
 *
 * @param numberOfTrials number of trials of the Binomial distribution
 * @param probabilityOfSuccess probability of success of the Binomial distribution
 * @return random value sampled from the Binomial(numberOfTrials, probabilityOfSuccess) distribution
 */
public int nextBinomial(int numberOfTrials, double probabilityOfSuccess) {
  return new BinomialDistribution(getRandomGenerator(), numberOfTrials, probabilityOfSuccess).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link CauchyDistribution Cauchy Distribution}.
 *
 * @param median the median of the Cauchy distribution
 * @param scale the scale parameter of the Cauchy distribution
 * @return random value sampled from the Cauchy(median, scale) distribution
 */
public double nextCauchy(double median, double scale) {
  return new CauchyDistribution(getRandomGenerator(), median, scale,
      CauchyDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/** {@inheritDoc} */
public int nextInt(final int lower, final int upper) throws NumberIsTooLargeException {
  return new UniformIntegerDistribution(getRandomGenerator(), lower, upper).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link WeibullDistribution Weibull Distribution}.
 *
 * @param shape the shape parameter of the Weibull distribution
 * @param scale the scale parameter of the Weibull distribution
 * @return random value sampled from the Weibull(shape, size) distribution
 * @throws NotStrictlyPositiveException if {@code shape <= 0} or
 * {@code scale <= 0}.
 */
public double nextWeibull(double shape, double scale) throws NotStrictlyPositiveException {
  return new WeibullDistribution(getRandomGenerator(), shape, scale,
      WeibullDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link PascalDistribution Pascal Distribution}.
 *
 * @param r the number of successes of the Pascal distribution
 * @param p the probability of success of the Pascal distribution
 * @return random value sampled from the Pascal(r, p) distribution
 * @throws NotStrictlyPositiveException if the number of successes is not positive
 * @throws OutOfRangeException if the probability of success is not in the
 * range {@code [0, 1]}.
 */
public int nextPascal(int r, double p) throws NotStrictlyPositiveException, OutOfRangeException {
  return new PascalDistribution(getRandomGenerator(), r, p).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * {@inheritDoc}
 *
 * <p>
 * <strong>Algorithm Description</strong>: Uses the Algorithm SA (Ahrens)
 * from p. 876 in:
 * [1]: Ahrens, J. H. and Dieter, U. (1972). Computer methods for
 * sampling from the exponential and normal distributions.
 * Communications of the ACM, 15, 873-882.
 * </p>
 */
public double nextExponential(double mean) throws NotStrictlyPositiveException {
  return new ExponentialDistribution(getRandomGenerator(), mean,
      ExponentialDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Generates a random value from the {@link HypergeometricDistribution Hypergeometric Distribution}.
 *
 * @param populationSize the population size of the Hypergeometric distribution
 * @param numberOfSuccesses number of successes in the population of the Hypergeometric distribution
 * @param sampleSize the sample size of the Hypergeometric distribution
 * @return random value sampled from the Hypergeometric(numberOfSuccesses, sampleSize) distribution
 * @throws NumberIsTooLargeException  if {@code numberOfSuccesses > populationSize},
 * or {@code sampleSize > populationSize}.
 * @throws NotStrictlyPositiveException if {@code populationSize <= 0}.
 * @throws NotPositiveException  if {@code numberOfSuccesses < 0}.
 */
public int nextHypergeometric(int populationSize, int numberOfSuccesses, int sampleSize) throws NotPositiveException, NotStrictlyPositiveException, NumberIsTooLargeException {
  return new HypergeometricDistribution(getRandomGenerator(),populationSize,
      numberOfSuccesses, sampleSize).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * {@inheritDoc}
 * <p>
 * <strong>Algorithm Description</strong>:
 * <ul><li> For small means, uses simulation of a Poisson process
 * using Uniform deviates, as described
 * <a href="http://irmi.epfl.ch/cmos/Pmmi/interactive/rng7.htm"> here.</a>
 * The Poisson process (and hence value returned) is bounded by 1000 * mean.</li>
 *
 * <li> For large means, uses the rejection algorithm described in <br/>
 * Devroye, Luc. (1981).<i>The Computer Generation of Poisson Random Variables</i>
 * <strong>Computing</strong> vol. 26 pp. 197-207.</li></ul></p>
 * @throws NotStrictlyPositiveException if {@code len <= 0}
 */
public long nextPoisson(double mean) throws NotStrictlyPositiveException {
  return new PoissonDistribution(getRandomGenerator(), mean,
      PoissonDistribution.DEFAULT_EPSILON,
      PoissonDistribution.DEFAULT_MAX_ITERATIONS).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * <p>Generates a random value from the
 * {@link org.apache.commons.math3.distribution.GammaDistribution Gamma Distribution}.</p>
 *
 * <p>This implementation uses the following algorithms: </p>
 *
 * <p>For 0 < shape < 1: <br/>
 * Ahrens, J. H. and Dieter, U., <i>Computer methods for
 * sampling from gamma, beta, Poisson and binomial distributions.</i>
 * Computing, 12, 223-246, 1974.</p>
 *
 * <p>For shape >= 1: <br/>
 * Marsaglia and Tsang, <i>A Simple Method for Generating
 * Gamma Variables.</i> ACM Transactions on Mathematical Software,
 * Volume 26 Issue 3, September, 2000.</p>
 *
 * @param shape the median of the Gamma distribution
 * @param scale the scale parameter of the Gamma distribution
 * @return random value sampled from the Gamma(shape, scale) distribution
 * @throws NotStrictlyPositiveException if {@code shape <= 0} or
 * {@code scale <= 0}.
 */
public double nextGamma(double shape, double scale) throws NotStrictlyPositiveException {
  return new GammaDistribution(getRandomGenerator(),shape, scale,
      GammaDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY).sample();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
 * Computes the empirical distribution using values from the file
 * in <code>valuesFileURL</code> and <code>binCount</code> bins.
 * <p>
 * <code>valuesFileURL</code> must exist and be readable by this process
 * at runtime.</p>
 * <p>
 * This method must be called before using <code>getNext()</code>
 * with <code>mode = DIGEST_MODE</code></p>
 *
 * @param binCount the number of bins used in computing the empirical
 * distribution
 * @throws NullArgumentException if the {@code valuesFileURL} has not been set
 * @throws IOException if an error occurs reading the input file
 * @throws ZeroException if URL contains no data
 */
public void computeDistribution(int binCount) throws NullArgumentException, IOException, ZeroException {
  empiricalDistribution = new EmpiricalDistribution(binCount, randomData.getRandomGenerator());
  empiricalDistribution.load(valuesFileURL);
  mu = empiricalDistribution.getSampleStats().getMean();
  sigma = empiricalDistribution.getSampleStats().getStandardDeviation();
}

代码示例来源:origin: org.apache.commons/commons-math3

/**
   * The within-bin smoothing kernel. Returns a Gaussian distribution
   * parameterized by {@code bStats}, unless the bin contains only one
   * observation, in which case a constant distribution is returned.
   *
   * @param bStats summary statistics for the bin
   * @return within-bin kernel parameterized by bStats
   */
  protected RealDistribution getKernel(SummaryStatistics bStats) {
    if (bStats.getN() == 1 || bStats.getVariance() == 0) {
      return new ConstantRealDistribution(bStats.getMean());
    } else {
      return new NormalDistribution(randomData.getRandomGenerator(),
        bStats.getMean(), bStats.getStandardDeviation(),
        NormalDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY);
    }
  }
}

相关文章

微信公众号

最新文章

更多