<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>RandomDataGenerator (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="RandomDataGenerator (Apache Commons Math 3.3 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RandomDataGenerator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/random/RandomDataImpl.html" title="class in org.apache.commons.math3.random"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/random/RandomDataGenerator.html" target="_top">Frames</a></li>
<li><a href="RandomDataGenerator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.random</div>
<h2 title="Class RandomDataGenerator" class="title">Class RandomDataGenerator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.random.RandomDataGenerator</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">RandomDataGenerator</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">Implements the <a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random"><code>RandomData</code></a> interface using a <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a>
 instance to generate non-secure data and a <a href="http://docs.oracle.com/javase/6/docs/api/java/security/SecureRandom.html?is-external=true" title="class or interface in java.security"><code>SecureRandom</code></a>
 instance to provide data for the <code>nextSecureXxx</code> methods. If no
 <code>RandomGenerator</code> is provided in the constructor, the default is
 to use a <a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a> generator. To plug in a different
 implementation, either implement <code>RandomGenerator</code> directly or
 extend <a href="../../../../../org/apache/commons/math3/random/AbstractRandomGenerator.html" title="class in org.apache.commons.math3.random"><code>AbstractRandomGenerator</code></a>.
 <p>
 Supports reseeding the underlying pseudo-random number generator (PRNG). The
 <code>SecurityProvider</code> and <code>Algorithm</code> used by the
 <code>SecureRandom</code> instance can also be reset.
 </p>
 <p>
 For details on the default PRNGs, see <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Random.html?is-external=true" title="class or interface in java.util"><code>Random</code></a> and
 <a href="http://docs.oracle.com/javase/6/docs/api/java/security/SecureRandom.html?is-external=true" title="class or interface in java.security"><code>SecureRandom</code></a>.
 </p>
 <p>
 <strong>Usage Notes</strong>:
 <ul>
 <li>
 Instance variables are used to maintain <code>RandomGenerator</code> and
 <code>SecureRandom</code> instances used in data generation. Therefore, to
 generate a random sequence of values or strings, you should use just
 <strong>one</strong> <code>RandomDataImpl</code> instance repeatedly.</li>
 <li>
 The "secure" methods are *much* slower. These should be used only when a
 cryptographically secure random sequence is required. A secure random
 sequence is a sequence of pseudo-random values which, in addition to being
 well-dispersed (so no subsequence of values is an any more likely than other
 subsequence of the the same length), also has the additional property that
 knowledge of values generated up to any point in the sequence does not make
 it any easier to predict subsequent values.</li>
 <li>
 When a new <code>RandomDataImpl</code> is created, the underlying random
 number generators are <strong>not</strong> initialized. If you do not
 explicitly seed the default non-secure generator, it is seeded with the
 current time in milliseconds plus the system identity hash code on first use.
 The same holds for the secure generator. If you provide a <code>RandomGenerator</code>
 to the constructor, however, this generator is not reseeded by the constructor
 nor is it reseeded on first use.</li>
 <li>
 The <code>reSeed</code> and <code>reSeedSecure</code> methods delegate to the
 corresponding methods on the underlying <code>RandomGenerator</code> and
 <code>SecureRandom</code> instances. Therefore, <code>reSeed(long)</code>
 fully resets the initial state of the non-secure random number generator (so
 that reseeding with a specific value always results in the same subsequent
 random sequence); whereas reSeedSecure(long) does <strong>not</strong>
 reinitialize the secure random number generator (so secure sequences started
 with calls to reseedSecure(long) won't be identical).</li>
 <li>
 This implementation is not synchronized. The underlying <code>RandomGenerator</code>
 or <code>SecureRandom</code> instances are not protected by synchronization and
 are not guaranteed to be thread-safe.  Therefore, if an instance of this class
 is concurrently utilized by multiple threads, it is the responsibility of
 client code to synchronize access to seeding and data generation methods.
 </li>
 </ul>
 </p></div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>3.1</dd>
<dt><span class="strong">Version:</span></dt>
  <dd>$Id: RandomDataGenerator.java 1538368 2013-11-03 13:57:37Z erans $</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../serialized-form.html#org.apache.commons.math3.random.RandomDataGenerator">Serialized Form</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#RandomDataGenerator()">RandomDataGenerator</a></strong>()</code>
<div class="block">Construct a RandomDataGenerator, using a default random generator as the source
 of randomness.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#RandomDataGenerator(org.apache.commons.math3.random.RandomGenerator)">RandomDataGenerator</a></strong>(<a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random">RandomGenerator</a>&nbsp;rand)</code>
<div class="block">Construct a RandomDataGenerator using the supplied <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a> as
 the source of (non-secure) random data.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random">RandomGenerator</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#getRandomGenerator()">getRandomGenerator</a></strong>()</code>
<div class="block">Returns the RandomGenerator used to generate non-secure random data.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextBeta(double, double)">nextBeta</a></strong>(double&nbsp;alpha,
        double&nbsp;beta)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/BetaDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Beta Distribution</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextBinomial(int, double)">nextBinomial</a></strong>(int&nbsp;numberOfTrials,
            double&nbsp;probabilityOfSuccess)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/BinomialDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Binomial Distribution</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextCauchy(double, double)">nextCauchy</a></strong>(double&nbsp;median,
          double&nbsp;scale)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/CauchyDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Cauchy Distribution</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextChiSquare(double)">nextChiSquare</a></strong>(double&nbsp;df)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/ChiSquaredDistribution.html" title="class in org.apache.commons.math3.distribution"><code>ChiSquare Distribution</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextExponential(double)">nextExponential</a></strong>(double&nbsp;mean)</code>
<div class="block">Generates a random value from the exponential distribution
 with specified mean.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextF(double, double)">nextF</a></strong>(double&nbsp;numeratorDf,
     double&nbsp;denominatorDf)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/FDistribution.html" title="class in org.apache.commons.math3.distribution"><code>F Distribution</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextGamma(double, double)">nextGamma</a></strong>(double&nbsp;shape,
         double&nbsp;scale)</code>
<div class="block">Generates a random value from the
 <a href="../../../../../org/apache/commons/math3/distribution/GammaDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Gamma Distribution</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextGaussian(double, double)">nextGaussian</a></strong>(double&nbsp;mu,
            double&nbsp;sigma)</code>
<div class="block">Generates a random value from the Normal (or Gaussian) distribution with
 specified mean and standard deviation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextHexString(int)">nextHexString</a></strong>(int&nbsp;len)</code>
<div class="block">Generates a random string of hex characters of length <code>len</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextHypergeometric(int, int, int)">nextHypergeometric</a></strong>(int&nbsp;populationSize,
                  int&nbsp;numberOfSuccesses,
                  int&nbsp;sampleSize)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/HypergeometricDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Hypergeometric Distribution</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextInt(int, int)">nextInt</a></strong>(int&nbsp;lower,
       int&nbsp;upper)</code>
<div class="block">Generates a uniformly distributed random integer between <code>lower</code>
 and <code>upper</code> (endpoints included).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextLong(long, long)">nextLong</a></strong>(long&nbsp;lower,
        long&nbsp;upper)</code>
<div class="block">Generates a uniformly distributed random long integer between
 <code>lower</code> and <code>upper</code> (endpoints included).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextPascal(int, double)">nextPascal</a></strong>(int&nbsp;r,
          double&nbsp;p)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/PascalDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Pascal Distribution</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextPermutation(int, int)">nextPermutation</a></strong>(int&nbsp;n,
               int&nbsp;k)</code>
<div class="block">Generates an integer array of length <code>k</code> whose entries are selected
 randomly, without repetition, from the integers <code>0, ..., n - 1</code>
 (inclusive).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextPoisson(double)">nextPoisson</a></strong>(double&nbsp;mean)</code>
<div class="block">Generates a random value from the Poisson distribution with the given
 mean.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextSample(java.util.Collection, int)">nextSample</a></strong>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;?&gt;&nbsp;c,
          int&nbsp;k)</code>
<div class="block">Returns an array of <code>k</code> objects selected randomly from the
 Collection <code>c</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextSecureHexString(int)">nextSecureHexString</a></strong>(int&nbsp;len)</code>
<div class="block">Generates a random string of hex characters from a secure random
 sequence.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextSecureInt(int, int)">nextSecureInt</a></strong>(int&nbsp;lower,
             int&nbsp;upper)</code>
<div class="block">Generates a uniformly distributed random integer between <code>lower</code>
 and <code>upper</code> (endpoints included) from a secure random sequence.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextSecureLong(long, long)">nextSecureLong</a></strong>(long&nbsp;lower,
              long&nbsp;upper)</code>
<div class="block">Generates a uniformly distributed random long integer between
 <code>lower</code> and <code>upper</code> (endpoints included) from a secure random
 sequence.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextT(double)">nextT</a></strong>(double&nbsp;df)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/TDistribution.html" title="class in org.apache.commons.math3.distribution"><code>T Distribution</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextUniform(double, double)">nextUniform</a></strong>(double&nbsp;lower,
           double&nbsp;upper)</code>
<div class="block">Generates a uniformly distributed random value from the open interval
 <code>(lower, upper)</code> (i.e., endpoints excluded).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextUniform(double, double, boolean)">nextUniform</a></strong>(double&nbsp;lower,
           double&nbsp;upper,
           boolean&nbsp;lowerInclusive)</code>
<div class="block">Generates a uniformly distributed random value from the interval
 <code>(lower, upper)</code> or the interval <code>[lower, upper)</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextWeibull(double, double)">nextWeibull</a></strong>(double&nbsp;shape,
           double&nbsp;scale)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/WeibullDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Weibull Distribution</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextZipf(int, double)">nextZipf</a></strong>(int&nbsp;numberOfElements,
        double&nbsp;exponent)</code>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/ZipfDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Zipf Distribution</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#reSeed()">reSeed</a></strong>()</code>
<div class="block">Reseeds the random number generator with
 <code>System.currentTimeMillis() + System.identityHashCode(this))</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#reSeed(long)">reSeed</a></strong>(long&nbsp;seed)</code>
<div class="block">Reseeds the random number generator with the supplied seed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#reSeedSecure()">reSeedSecure</a></strong>()</code>
<div class="block">Reseeds the secure random number generator with the current time in
 milliseconds.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#reSeedSecure(long)">reSeedSecure</a></strong>(long&nbsp;seed)</code>
<div class="block">Reseeds the secure random number generator with the supplied seed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#setSecureAlgorithm(java.lang.String, java.lang.String)">setSecureAlgorithm</a></strong>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;algorithm,
                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;provider)</code>
<div class="block">Sets the PRNG algorithm for the underlying SecureRandom instance using
 the Security Provider API.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="RandomDataGenerator()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RandomDataGenerator</h4>
<pre>public&nbsp;RandomDataGenerator()</pre>
<div class="block">Construct a RandomDataGenerator, using a default random generator as the source
 of randomness.

 <p>The default generator is a <a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a> seeded
 with <code>System.currentTimeMillis() + System.identityHashCode(this))</code>.
 The generator is initialized and seeded on first use.</p></div>
</li>
</ul>
<a name="RandomDataGenerator(org.apache.commons.math3.random.RandomGenerator)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RandomDataGenerator</h4>
<pre>public&nbsp;RandomDataGenerator(<a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random">RandomGenerator</a>&nbsp;rand)</pre>
<div class="block">Construct a RandomDataGenerator using the supplied <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a> as
 the source of (non-secure) random data.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>rand</code> - the source of (non-secure) random data
 (may be null, resulting in the default generator)</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="nextHexString(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextHexString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;nextHexString(int&nbsp;len)
                     throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random string of hex characters of length <code>len</code>.
 <p>
 The generated string will be random, but not cryptographically
 secure. To generate cryptographically secure strings, use
 <a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextSecureHexString(int)"><code>RandomData.nextSecureHexString(int)</code></a>.
 </p>
 <p>
 <strong>Algorithm Description:</strong> hex strings are generated using a
 2-step process.
 <ol>
 <li><code>len / 2 + 1</code> binary bytes are generated using the underlying
 Random</li>
 <li>Each binary byte is translated into 2 hex digits</li>
 </ol>
 </p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextHexString(int)">nextHexString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>len</code> - the desired string length.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the random string.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>len &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="nextInt(int, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextInt</h4>
<pre>public&nbsp;int&nbsp;nextInt(int&nbsp;lower,
          int&nbsp;upper)
            throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></pre>
<div class="block">Generates a uniformly distributed random integer between <code>lower</code>
 and <code>upper</code> (endpoints included).
 <p>
 The generated integer will be random, but not cryptographically secure.
 To generate cryptographically secure integer sequences, use
 <a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextSecureInt(int, int)"><code>RandomData.nextSecureInt(int, int)</code></a>.
 </p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextInt(int, int)">nextInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - lower bound for generated integer</dd><dd><code>upper</code> - upper bound for generated integer</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random integer greater than or equal to <code>lower</code>
 and less than or equal to <code>upper</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>lower &gt;= upper</code></dd></dl>
</li>
</ul>
<a name="nextLong(long, long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextLong</h4>
<pre>public&nbsp;long&nbsp;nextLong(long&nbsp;lower,
            long&nbsp;upper)
              throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></pre>
<div class="block">Generates a uniformly distributed random long integer between
 <code>lower</code> and <code>upper</code> (endpoints included).
 <p>
 The generated long integer values will be random, but not
 cryptographically secure. To generate cryptographically secure sequences
 of longs, use <a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextSecureLong(long, long)"><code>RandomData.nextSecureLong(long, long)</code></a>.
 </p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextLong(long, long)">nextLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - lower bound for generated long integer</dd><dd><code>upper</code> - upper bound for generated long integer</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random long integer greater than or equal to <code>lower</code> and
 less than or equal to <code>upper</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>lower &gt;= upper</code></dd></dl>
</li>
</ul>
<a name="nextSecureHexString(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextSecureHexString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;nextSecureHexString(int&nbsp;len)
                           throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random string of hex characters from a secure random
 sequence.
 <p>
 If cryptographic security is not required, use
 <a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextHexString(int)"><code>RandomData.nextHexString(int)</code></a>.
 </p>
 <p>
 <strong>Algorithm Description:</strong> hex strings are generated in
 40-byte segments using a 3-step process.
 <ol>
 <li>
 20 random bytes are generated using the underlying
 <code>SecureRandom</code>.</li>
 <li>
 SHA-1 hash is applied to yield a 20-byte binary digest.</li>
 <li>
 Each byte of the binary digest is converted to 2 hex digits.</li>
 </ol>
 </p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextSecureHexString(int)">nextSecureHexString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>len</code> - the length of the string to be generated</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random string of hex characters of length <code>len</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>len &lt;= 0</code></dd></dl>
</li>
</ul>
<a name="nextSecureInt(int, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextSecureInt</h4>
<pre>public&nbsp;int&nbsp;nextSecureInt(int&nbsp;lower,
                int&nbsp;upper)
                  throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></pre>
<div class="block">Generates a uniformly distributed random integer between <code>lower</code>
 and <code>upper</code> (endpoints included) from a secure random sequence.
 <p>
 Sequences of integers generated using this method will be
 cryptographically secure. If cryptographic security is not required,
 <a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextInt(int, int)"><code>RandomData.nextInt(int, int)</code></a> should be used instead of this method.</p>
 <p>
 <strong>Definition</strong>:
 <a href="http://en.wikipedia.org/wiki/Cryptographically_secure_pseudo-random_number_generator">
 Secure Random Sequence</a></p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextSecureInt(int, int)">nextSecureInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - lower bound for generated integer</dd><dd><code>upper</code> - upper bound for generated integer</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random integer greater than or equal to <code>lower</code> and less
 than or equal to <code>upper</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>lower &gt;= upper</code>.</dd></dl>
</li>
</ul>
<a name="nextSecureLong(long, long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextSecureLong</h4>
<pre>public&nbsp;long&nbsp;nextSecureLong(long&nbsp;lower,
                  long&nbsp;upper)
                    throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></pre>
<div class="block">Generates a uniformly distributed random long integer between
 <code>lower</code> and <code>upper</code> (endpoints included) from a secure random
 sequence.
 <p>
 Sequences of long values generated using this method will be
 cryptographically secure. If cryptographic security is not required,
 <a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextLong(long, long)"><code>RandomData.nextLong(long, long)</code></a> should be used instead of this method.</p>
 <p>
 <strong>Definition</strong>:
 <a href="http://en.wikipedia.org/wiki/Cryptographically_secure_pseudo-random_number_generator">
 Secure Random Sequence</a></p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextSecureLong(long, long)">nextSecureLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - lower bound for generated integer</dd><dd><code>upper</code> - upper bound for generated integer</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random long integer greater than or equal to <code>lower</code> and
 less than or equal to <code>upper</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>lower &gt;= upper</code>.</dd></dl>
</li>
</ul>
<a name="nextPoisson(double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextPoisson</h4>
<pre>public&nbsp;long&nbsp;nextPoisson(double&nbsp;mean)
                 throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random value from the Poisson distribution with the given
 mean.
 <p>
 <strong>Definition</strong>:
 <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda366j.htm">
 Poisson Distribution</a></p>
 <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></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextPoisson(double)">nextPoisson</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>mean</code> - the mean of the Poisson distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random value following the specified Poisson distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>len &lt;= 0</code></dd></dl>
</li>
</ul>
<a name="nextGaussian(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextGaussian</h4>
<pre>public&nbsp;double&nbsp;nextGaussian(double&nbsp;mu,
                  double&nbsp;sigma)
                    throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random value from the Normal (or Gaussian) distribution with
 specified mean and standard deviation.
 <p>
 <strong>Definition</strong>:
 <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3661.htm">
 Normal Distribution</a></p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextGaussian(double, double)">nextGaussian</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>mu</code> - the mean of the distribution</dd><dd><code>sigma</code> - the standard deviation of the distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random value following the specified Gaussian distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>sigma &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="nextExponential(double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextExponential</h4>
<pre>public&nbsp;double&nbsp;nextExponential(double&nbsp;mean)
                       throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random value from the exponential distribution
 with specified mean.
 <p>
 <strong>Definition</strong>:
 <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3667.htm">
 Exponential Distribution</a></p>

 <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></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextExponential(double)">nextExponential</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>mean</code> - the mean of the distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random value following the specified exponential distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>mean &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="nextGamma(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextGamma</h4>
<pre>public&nbsp;double&nbsp;nextGamma(double&nbsp;shape,
               double&nbsp;scale)
                 throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block"><p>Generates a random value from the
 <a href="../../../../../org/apache/commons/math3/distribution/GammaDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Gamma Distribution</code></a>.</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></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - the median of the Gamma distribution</dd><dd><code>scale</code> - the scale parameter of the Gamma distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the Gamma(shape, scale) distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>shape &lt;= 0</code> or
 <code>scale &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="nextHypergeometric(int, int, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextHypergeometric</h4>
<pre>public&nbsp;int&nbsp;nextHypergeometric(int&nbsp;populationSize,
                     int&nbsp;numberOfSuccesses,
                     int&nbsp;sampleSize)
                       throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
                              <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a>,
                              <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/HypergeometricDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Hypergeometric Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>populationSize</code> - the population size of the Hypergeometric distribution</dd><dd><code>numberOfSuccesses</code> - number of successes in the population of the Hypergeometric distribution</dd><dd><code>sampleSize</code> - the sample size of the Hypergeometric distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the Hypergeometric(numberOfSuccesses, sampleSize) distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>numberOfSuccesses &gt; populationSize</code>,
 or <code>sampleSize &gt; populationSize</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>populationSize &lt;= 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>numberOfSuccesses &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="nextPascal(int, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextPascal</h4>
<pre>public&nbsp;int&nbsp;nextPascal(int&nbsp;r,
             double&nbsp;p)
               throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a>,
                      <a href="../../../../../org/apache/commons/math3/exception/OutOfRangeException.html" title="class in org.apache.commons.math3.exception">OutOfRangeException</a></pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/PascalDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Pascal Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the number of successes of the Pascal distribution</dd><dd><code>p</code> - the probability of success of the Pascal distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the Pascal(r, p) distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if the number of successes is not positive</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/OutOfRangeException.html" title="class in org.apache.commons.math3.exception">OutOfRangeException</a></code> - if the probability of success is not in the
 range <code>[0, 1]</code>.</dd></dl>
</li>
</ul>
<a name="nextT(double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextT</h4>
<pre>public&nbsp;double&nbsp;nextT(double&nbsp;df)
             throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/TDistribution.html" title="class in org.apache.commons.math3.distribution"><code>T Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>df</code> - the degrees of freedom of the T distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value from the T(df) distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>df &lt;= 0</code></dd></dl>
</li>
</ul>
<a name="nextWeibull(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextWeibull</h4>
<pre>public&nbsp;double&nbsp;nextWeibull(double&nbsp;shape,
                 double&nbsp;scale)
                   throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/WeibullDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Weibull Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - the shape parameter of the Weibull distribution</dd><dd><code>scale</code> - the scale parameter of the Weibull distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the Weibull(shape, size) distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>shape &lt;= 0</code> or
 <code>scale &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="nextZipf(int, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextZipf</h4>
<pre>public&nbsp;int&nbsp;nextZipf(int&nbsp;numberOfElements,
           double&nbsp;exponent)
             throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/ZipfDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Zipf Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>numberOfElements</code> - the number of elements of the ZipfDistribution</dd><dd><code>exponent</code> - the exponent of the ZipfDistribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the Zipf(numberOfElements, exponent) distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>numberOfElements &lt;= 0</code>
 or <code>exponent &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="nextBeta(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextBeta</h4>
<pre>public&nbsp;double&nbsp;nextBeta(double&nbsp;alpha,
              double&nbsp;beta)</pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/BetaDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Beta Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>alpha</code> - first distribution shape parameter</dd><dd><code>beta</code> - second distribution shape parameter</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the beta(alpha, beta) distribution</dd></dl>
</li>
</ul>
<a name="nextBinomial(int, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextBinomial</h4>
<pre>public&nbsp;int&nbsp;nextBinomial(int&nbsp;numberOfTrials,
               double&nbsp;probabilityOfSuccess)</pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/BinomialDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Binomial Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>numberOfTrials</code> - number of trials of the Binomial distribution</dd><dd><code>probabilityOfSuccess</code> - probability of success of the Binomial distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the Binomial(numberOfTrials, probabilityOfSuccess) distribution</dd></dl>
</li>
</ul>
<a name="nextCauchy(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextCauchy</h4>
<pre>public&nbsp;double&nbsp;nextCauchy(double&nbsp;median,
                double&nbsp;scale)</pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/CauchyDistribution.html" title="class in org.apache.commons.math3.distribution"><code>Cauchy Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>median</code> - the median of the Cauchy distribution</dd><dd><code>scale</code> - the scale parameter of the Cauchy distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the Cauchy(median, scale) distribution</dd></dl>
</li>
</ul>
<a name="nextChiSquare(double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextChiSquare</h4>
<pre>public&nbsp;double&nbsp;nextChiSquare(double&nbsp;df)</pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/ChiSquaredDistribution.html" title="class in org.apache.commons.math3.distribution"><code>ChiSquare Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>df</code> - the degrees of freedom of the ChiSquare distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the ChiSquare(df) distribution</dd></dl>
</li>
</ul>
<a name="nextF(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextF</h4>
<pre>public&nbsp;double&nbsp;nextF(double&nbsp;numeratorDf,
           double&nbsp;denominatorDf)
             throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates a random value from the <a href="../../../../../org/apache/commons/math3/distribution/FDistribution.html" title="class in org.apache.commons.math3.distribution"><code>F Distribution</code></a>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>numeratorDf</code> - the numerator degrees of freedom of the F distribution</dd><dd><code>denominatorDf</code> - the denominator degrees of freedom of the F distribution</dd>
<dt><span class="strong">Returns:</span></dt><dd>random value sampled from the F(numeratorDf, denominatorDf) distribution</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if
 <code>numeratorDf &lt;= 0</code> or <code>denominatorDf &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="nextUniform(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextUniform</h4>
<pre>public&nbsp;double&nbsp;nextUniform(double&nbsp;lower,
                 double&nbsp;upper)
                   throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
                          <a href="../../../../../org/apache/commons/math3/exception/NotFiniteNumberException.html" title="class in org.apache.commons.math3.exception">NotFiniteNumberException</a>,
                          <a href="../../../../../org/apache/commons/math3/exception/NotANumberException.html" title="class in org.apache.commons.math3.exception">NotANumberException</a></pre>
<div class="block">Generates a uniformly distributed random value from the open interval
 <code>(lower, upper)</code> (i.e., endpoints excluded).
 <p>
 <strong>Definition</strong>:
 <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3662.htm">
 Uniform Distribution</a> <code>lower</code> and <code>upper - lower</code> are the
 <a href = "http://www.itl.nist.gov/div898/handbook/eda/section3/eda364.htm">
 location and scale parameters</a>, respectively.</p>

 <p>
 <strong>Algorithm Description</strong>: scales the output of
 Random.nextDouble(), but rejects 0 values (i.e., will generate another
 random double if Random.nextDouble() returns 0). This is necessary to
 provide a symmetric output interval (both endpoints excluded).
 </p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextUniform(double, double)">nextUniform</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - the exclusive lower bound of the support</dd><dd><code>upper</code> - the exclusive upper bound of the support</dd>
<dt><span class="strong">Returns:</span></dt><dd>a uniformly distributed random value between lower and upper
 (exclusive)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>lower &gt;= upper</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotFiniteNumberException.html" title="class in org.apache.commons.math3.exception">NotFiniteNumberException</a></code> - if one of the bounds is infinite</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotANumberException.html" title="class in org.apache.commons.math3.exception">NotANumberException</a></code> - if one of the bounds is NaN</dd></dl>
</li>
</ul>
<a name="nextUniform(double, double, boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextUniform</h4>
<pre>public&nbsp;double&nbsp;nextUniform(double&nbsp;lower,
                 double&nbsp;upper,
                 boolean&nbsp;lowerInclusive)
                   throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
                          <a href="../../../../../org/apache/commons/math3/exception/NotFiniteNumberException.html" title="class in org.apache.commons.math3.exception">NotFiniteNumberException</a>,
                          <a href="../../../../../org/apache/commons/math3/exception/NotANumberException.html" title="class in org.apache.commons.math3.exception">NotANumberException</a></pre>
<div class="block">Generates a uniformly distributed random value from the interval
 <code>(lower, upper)</code> or the interval <code>[lower, upper)</code>. The lower
 bound is thus optionally included, while the upper bound is always
 excluded.
 <p>
 <strong>Definition</strong>:
 <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda3662.htm">
 Uniform Distribution</a> <code>lower</code> and <code>upper - lower</code> are the
 <a href = "http://www.itl.nist.gov/div898/handbook/eda/section3/eda364.htm">
 location and scale parameters</a>, respectively.</p>

 <p>
 <strong>Algorithm Description</strong>: if the lower bound is excluded,
 scales the output of Random.nextDouble(), but rejects 0 values (i.e.,
 will generate another random double if Random.nextDouble() returns 0).
 This is necessary to provide a symmetric output interval (both
 endpoints excluded).
 </p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextUniform(double, double, boolean)">nextUniform</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - the lower bound of the support</dd><dd><code>upper</code> - the exclusive upper bound of the support</dd><dd><code>lowerInclusive</code> - <code>true</code> if the lower bound is inclusive</dd>
<dt><span class="strong">Returns:</span></dt><dd>uniformly distributed random value in the <code>(lower, upper)</code>
 interval, if <code>lowerInclusive</code> is <code>false</code>, or in the
 <code>[lower, upper)</code> interval, if <code>lowerInclusive</code> is
 <code>true</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>lower &gt;= upper</code></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotFiniteNumberException.html" title="class in org.apache.commons.math3.exception">NotFiniteNumberException</a></code> - if one of the bounds is infinite</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotANumberException.html" title="class in org.apache.commons.math3.exception">NotANumberException</a></code> - if one of the bounds is NaN</dd></dl>
</li>
</ul>
<a name="nextPermutation(int, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextPermutation</h4>
<pre>public&nbsp;int[]&nbsp;nextPermutation(int&nbsp;n,
                    int&nbsp;k)
                      throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
                             <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Generates an integer array of length <code>k</code> whose entries are selected
 randomly, without repetition, from the integers <code>0, ..., n - 1</code>
 (inclusive).
 <p>
 Generated arrays represent permutations of <code>n</code> taken <code>k</code> at a
 time.</p>

 This method calls <a href="../../../../../org/apache/commons/math3/util/MathArrays.html#shuffle(int[], org.apache.commons.math3.random.RandomGenerator)"><code>MathArrays.shuffle</code></a> in order to create a random shuffle of the set
 of natural numbers <code>{ 0, 1, ..., n - 1 }</code>.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextPermutation(int, int)">nextPermutation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the domain of the permutation</dd><dd><code>k</code> - the size of the permutation</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random <code>k</code>-permutation of <code>n</code>, as an array of
 integers</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>k &gt; n</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>k &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="nextSample(java.util.Collection, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextSample</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;nextSample(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;?&gt;&nbsp;c,
                  int&nbsp;k)
                    throws <a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
                           <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Returns an array of <code>k</code> objects selected randomly from the
 Collection <code>c</code>.
 <p>
 Sampling from <code>c</code> is without replacement; but if <code>c</code> contains
 identical objects, the sample may include repeats.  If all elements of
 <code>c</code> are distinct, the resulting object array represents a
 <a href="http://rkb.home.cern.ch/rkb/AN16pp/node250.html#SECTION0002500000000000000000">
 Simple Random Sample</a> of size <code>k</code> from the elements of
 <code>c</code>.</p>

 This method calls <a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html#nextPermutation(int, int)"><code>nextPermutation(c.size(), k)</code></a>
 in order to sample the collection.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/random/RandomData.html#nextSample(java.util.Collection, int)">nextSample</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>c</code> - the collection to be sampled</dd><dd><code>k</code> - the size of the sample</dd>
<dt><span class="strong">Returns:</span></dt><dd>a random sample of <code>k</code> elements from <code>c</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>k &gt; c.size()</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>k &lt;= 0</code>.</dd></dl>
</li>
</ul>
<a name="reSeed(long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reSeed</h4>
<pre>public&nbsp;void&nbsp;reSeed(long&nbsp;seed)</pre>
<div class="block">Reseeds the random number generator with the supplied seed.
 <p>
 Will create and initialize if null.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>seed</code> - the seed value to use</dd></dl>
</li>
</ul>
<a name="reSeedSecure()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reSeedSecure</h4>
<pre>public&nbsp;void&nbsp;reSeedSecure()</pre>
<div class="block">Reseeds the secure random number generator with the current time in
 milliseconds.
 <p>
 Will create and initialize if null.
 </p></div>
</li>
</ul>
<a name="reSeedSecure(long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reSeedSecure</h4>
<pre>public&nbsp;void&nbsp;reSeedSecure(long&nbsp;seed)</pre>
<div class="block">Reseeds the secure random number generator with the supplied seed.
 <p>
 Will create and initialize if null.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>seed</code> - the seed value to use</dd></dl>
</li>
</ul>
<a name="reSeed()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reSeed</h4>
<pre>public&nbsp;void&nbsp;reSeed()</pre>
<div class="block">Reseeds the random number generator with
 <code>System.currentTimeMillis() + System.identityHashCode(this))</code>.</div>
</li>
</ul>
<a name="setSecureAlgorithm(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSecureAlgorithm</h4>
<pre>public&nbsp;void&nbsp;setSecureAlgorithm(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;algorithm,
                      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;provider)
                        throws <a href="http://docs.oracle.com/javase/6/docs/api/java/security/NoSuchAlgorithmException.html?is-external=true" title="class or interface in java.security">NoSuchAlgorithmException</a>,
                               <a href="http://docs.oracle.com/javase/6/docs/api/java/security/NoSuchProviderException.html?is-external=true" title="class or interface in java.security">NoSuchProviderException</a></pre>
<div class="block">Sets the PRNG algorithm for the underlying SecureRandom instance using
 the Security Provider API. The Security Provider API is defined in <a
 href =
 "http://java.sun.com/j2se/1.3/docs/guide/security/CryptoSpec.html#AppA">
 Java Cryptography Architecture API Specification & Reference.</a>
 <p>
 <strong>USAGE NOTE:</strong> This method carries <i>significant</i>
 overhead and may take several seconds to execute.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>algorithm</code> - the name of the PRNG algorithm</dd><dd><code>provider</code> - the name of the provider</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/NoSuchAlgorithmException.html?is-external=true" title="class or interface in java.security">NoSuchAlgorithmException</a></code> - if the specified algorithm is not available</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/NoSuchProviderException.html?is-external=true" title="class or interface in java.security">NoSuchProviderException</a></code> - if the specified provider is not installed</dd></dl>
</li>
</ul>
<a name="getRandomGenerator()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getRandomGenerator</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random">RandomGenerator</a>&nbsp;getRandomGenerator()</pre>
<div class="block">Returns the RandomGenerator used to generate non-secure random data.
 <p>
 Creates and initializes a default generator if null. Uses a <a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a>
 generator with <code>System.currentTimeMillis() + System.identityHashCode(this))</code>
 as the default seed.
 </p></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the Random used to generate random data</dd><dt><span class="strong">Since:</span></dt>
  <dd>3.2</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RandomDataGenerator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/random/RandomDataImpl.html" title="class in org.apache.commons.math3.random"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/random/RandomDataGenerator.html" target="_top">Frames</a></li>
<li><a href="RandomDataGenerator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
