<!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>org.apache.commons.math3.random (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="org.apache.commons.math3.random (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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.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/primes/package-summary.html">Prev Package</a></li>
<li><a href="../../../../../org/apache/commons/math3/special/package-summary.html">Next Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/random/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.commons.math3.random</h1>
<div class="docSummary">
<div class="block">Random number and random data generators.</div>
</div>
<p>See:&nbsp;<a href="#package_description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/NormalizedRandomGenerator.html" title="interface in org.apache.commons.math3.random">NormalizedRandomGenerator</a></td>
<td class="colLast">
<div class="block">This interface represent a normalized random generator for
 scalars.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></td>
<td class="colLast">Deprecated
<div class="block"><i>to be removed in 4.0.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random">RandomGenerator</a></td>
<td class="colLast">
<div class="block">Interface extracted from <code>java.util.Random</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomVectorGenerator.html" title="interface in org.apache.commons.math3.random">RandomVectorGenerator</a></td>
<td class="colLast">
<div class="block">This interface represents a random generator for whole vectors.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/AbstractRandomGenerator.html" title="class in org.apache.commons.math3.random">AbstractRandomGenerator</a></td>
<td class="colLast">
<div class="block">Abstract class implementing the <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a> interface.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/AbstractWell.html" title="class in org.apache.commons.math3.random">AbstractWell</a></td>
<td class="colLast">
<div class="block">This abstract class implements the WELL class of pseudo-random number generator
 from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/BitsStreamGenerator.html" title="class in org.apache.commons.math3.random">BitsStreamGenerator</a></td>
<td class="colLast">
<div class="block">Base class for random number generators that generates bits streams.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/CorrelatedRandomVectorGenerator.html" title="class in org.apache.commons.math3.random">CorrelatedRandomVectorGenerator</a></td>
<td class="colLast">
<div class="block">A <a href="../../../../../org/apache/commons/math3/random/RandomVectorGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomVectorGenerator</code></a> that generates vectors with with
 correlated components.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/EmpiricalDistribution.html" title="class in org.apache.commons.math3.random">EmpiricalDistribution</a></td>
<td class="colLast">
<div class="block">Represents an <a href="http://http://en.wikipedia.org/wiki/Empirical_distribution_function">
 empirical probability distribution</a> -- a probability distribution derived
 from observed data without making any assumptions about the functional form
 of the population distribution that the data come from.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/GaussianRandomGenerator.html" title="class in org.apache.commons.math3.random">GaussianRandomGenerator</a></td>
<td class="colLast">
<div class="block">This class is a gaussian normalized random generator for scalars.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/HaltonSequenceGenerator.html" title="class in org.apache.commons.math3.random">HaltonSequenceGenerator</a></td>
<td class="colLast">
<div class="block">Implementation of a Halton sequence.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/ISAACRandom.html" title="class in org.apache.commons.math3.random">ISAACRandom</a></td>
<td class="colLast">
<div class="block"><a href="http://burtleburtle.net/bob/rand/isaacafa.html">
  ISAAC: a fast cryptographic pseudo-random number generator</a>
 <br/>
 ISAAC (Indirection, Shift, Accumulate, Add, and Count) generates 32-bit
 random numbers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/JDKRandomGenerator.html" title="class in org.apache.commons.math3.random">JDKRandomGenerator</a></td>
<td class="colLast">
<div class="block">Extension of <code>java.util.Random</code> to implement
 <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/MersenneTwister.html" title="class in org.apache.commons.math3.random">MersenneTwister</a></td>
<td class="colLast">
<div class="block">This class implements a powerful pseudo-random number generator
 developed by Makoto Matsumoto and Takuji Nishimura during
 1996-1997.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomAdaptor.html" title="class in org.apache.commons.math3.random">RandomAdaptor</a></td>
<td class="colLast">
<div class="block">Extension of <code>java.util.Random</code> wrapping a
 <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html" title="class in org.apache.commons.math3.random">RandomDataGenerator</a></td>
<td class="colLast">
<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.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomDataImpl.html" title="class in org.apache.commons.math3.random">RandomDataImpl</a></td>
<td class="colLast">Deprecated
<div class="block"><i>to be removed in 4.0.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomGeneratorFactory.html" title="class in org.apache.commons.math3.random">RandomGeneratorFactory</a></td>
<td class="colLast">
<div class="block">Utilities for creating <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a> instances.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/SobolSequenceGenerator.html" title="class in org.apache.commons.math3.random">SobolSequenceGenerator</a></td>
<td class="colLast">
<div class="block">Implementation of a Sobol sequence.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/StableRandomGenerator.html" title="class in org.apache.commons.math3.random">StableRandomGenerator</a></td>
<td class="colLast">
<div class="block">This class provides a stable normalized random generator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/SynchronizedRandomGenerator.html" title="class in org.apache.commons.math3.random">SynchronizedRandomGenerator</a></td>
<td class="colLast">
<div class="block">Any <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a> implementation can be thread-safe if it
 is used through an instance of this class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/UncorrelatedRandomVectorGenerator.html" title="class in org.apache.commons.math3.random">UncorrelatedRandomVectorGenerator</a></td>
<td class="colLast">
<div class="block">A <a href="../../../../../org/apache/commons/math3/random/RandomVectorGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomVectorGenerator</code></a> that generates vectors with uncorrelated
 components.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/UniformRandomGenerator.html" title="class in org.apache.commons.math3.random">UniformRandomGenerator</a></td>
<td class="colLast">
<div class="block">This class implements a normalized uniform random generator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/UnitSphereRandomVectorGenerator.html" title="class in org.apache.commons.math3.random">UnitSphereRandomVectorGenerator</a></td>
<td class="colLast">
<div class="block">Generate random vectors isotropically located on the surface of a sphere.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/ValueServer.html" title="class in org.apache.commons.math3.random">ValueServer</a></td>
<td class="colLast">
<div class="block">Generates values for use in simulation applications.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well1024a.html" title="class in org.apache.commons.math3.random">Well1024a</a></td>
<td class="colLast">
<div class="block">This class implements the WELL1024a pseudo-random number generator
 from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well19937a.html" title="class in org.apache.commons.math3.random">Well19937a</a></td>
<td class="colLast">
<div class="block">This class implements the WELL19937a pseudo-random number generator
 from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random">Well19937c</a></td>
<td class="colLast">
<div class="block">This class implements the WELL19937c pseudo-random number generator
 from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well44497a.html" title="class in org.apache.commons.math3.random">Well44497a</a></td>
<td class="colLast">
<div class="block">This class implements the WELL44497a pseudo-random number generator
 from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well44497b.html" title="class in org.apache.commons.math3.random">Well44497b</a></td>
<td class="colLast">
<div class="block">This class implements the WELL44497b pseudo-random number generator
 from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well512a.html" title="class in org.apache.commons.math3.random">Well512a</a></td>
<td class="colLast">
<div class="block">This class implements the WELL512a pseudo-random number generator
 from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package_description">
<!--   -->
</a>
<h2 title="Package org.apache.commons.math3.random Description">Package org.apache.commons.math3.random Description</h2>
<div class="block"><p>Random number and random data generators.</p>
      <p>Commons-math provides a few pseudo random number generators. The top level interface is RandomGenerator.
      It is implemented by three classes:
      <ul>
        <li><a href="../../../../../org/apache/commons/math3/random/JDKRandomGenerator.html" title="class in org.apache.commons.math3.random"><code>JDKRandomGenerator</code></a>
            that extends the JDK provided generator</li>
        <li>AbstractRandomGenerator as a helper for users generators</li>
        <li>BitStreamGenerator which is an abstract class for several generators and
            which in turn is extended by:
            <ul>
              <li><a href="../../../../../org/apache/commons/math3/random/MersenneTwister.html" title="class in org.apache.commons.math3.random"><code>MersenneTwister</code></a></li>
              <li><a href="../../../../../org/apache/commons/math3/random/Well512a.html" title="class in org.apache.commons.math3.random"><code>Well512a</code></a></li>
              <li><a href="../../../../../org/apache/commons/math3/random/Well1024a.html" title="class in org.apache.commons.math3.random"><code>Well1024a</code></a></li>
              <li><a href="../../../../../org/apache/commons/math3/random/Well19937a.html" title="class in org.apache.commons.math3.random"><code>Well19937a</code></a></li>
              <li><a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a></li>
              <li><a href="../../../../../org/apache/commons/math3/random/Well44497a.html" title="class in org.apache.commons.math3.random"><code>Well44497a</code></a></li>
              <li><a href="../../../../../org/apache/commons/math3/random/Well44497b.html" title="class in org.apache.commons.math3.random"><code>Well44497b</code></a></li>
            </ul>
          </li>
        </ul>
      </p>

      <p>
      The JDK provided generator is a simple one that can be used only for very simple needs.
      The Mersenne Twister is a fast generator with very good properties well suited for
      Monte-Carlo simulation. It is equidistributed for generating vectors up to dimension 623
      and has a huge period: 2<sup>19937</sup> - 1 (which is a Mersenne prime). This generator
      is described in a paper by Makoto Matsumoto and Takuji Nishimura in 1998: <a
      href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/mt.pdf">Mersenne Twister:
      A 623-Dimensionally Equidistributed Uniform Pseudo-Random Number Generator</a>, ACM
      Transactions on Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3--30.
      The WELL generators are a family of generators with period ranging from 2<sup>512</sup> - 1
      to 2<sup>44497</sup> - 1 (this last one is also a Mersenne prime) with even better properties
      than Mersenne Twister. These generators are described in a paper by Fran&ccedil;ois Panneton,
      Pierre L'Ecuyer and Makoto Matsumoto <a
      href="http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng.pdf">Improved Long-Period
      Generators Based on Linear Recurrences Modulo 2</a> ACM Transactions on Mathematical Software,
      32, 1 (2006). The errata for the paper are in <a
      href="http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt">wellrng-errata.txt</a>.
      </p>

      <p>
      For simple sampling, any of these generators is sufficient. For Monte-Carlo simulations the
      JDK generator does not have any of the good mathematical properties of the other generators,
      so it should be avoided. The Mersenne twister and WELL generators have equidistribution properties
      proven according to their bits pool size which is directly linked to their period (all of them
      have maximal period, i.e. a generator with size n pool has a period 2<sup>n</sup>-1). They also
      have equidistribution properties for 32 bits blocks up to s/32 dimension where s is their pool size.
      So WELL19937c for exemple is equidistributed up to dimension 623 (19937/32). This means a Monte-Carlo
      simulation generating a vector of n variables at each iteration has some guarantees on the properties
      of the vector as long as its dimension does not exceed the limit. However, since we use bits from two
      successive 32 bits generated integers to create one double, this limit is smaller when the variables are
      of type double. so for Monte-Carlo simulation where less the 16 doubles are generated at each round,
      WELL1024 may be sufficient. If a larger number of doubles are needed a generator with a larger pool
      would be useful.
      </p>

      <p>
      The WELL generators are more modern then MersenneTwister (the paper describing than has been published
      in 2006 instead of 1998) and fix some of its (few) drawbacks. If initialization array contains many
      zero bits, MersenneTwister may take a very long time (several hundreds of thousands of iterations to
      reach a steady state with a balanced number of zero and one in its bits pool). So the WELL generators
      are better to <i>escape zeroland</i> as explained by the WELL generators creators. The Well19937a and
      Well44497a generator are not maximally equidistributed (i.e. there are some dimensions or bits blocks
      size for which they are not equidistributed). The Well512a, Well1024a, Well19937c and Well44497b are
      maximally equidistributed for blocks size up to 32 bits (they should behave correctly also for double
      based on more than 32 bits blocks, but equidistribution is not proven at these blocks sizes).
      </p>

      <p>
      The MersenneTwister generator uses a 624 elements integer array, so it consumes less than 2.5 kilobytes.
      The WELL generators use 6 integer arrays with a size equal to the pool size, so for example the
      WELL44497b generator uses about 33 kilobytes. This may be important if a very large number of
      generator instances were used at the same time.
      </p>

      <p>
      All generators are quite fast. As an example, here are some comparisons, obtained on a 64 bits JVM on a
      linux computer with a 2008 processor (AMD phenom Quad 9550 at 2.2 GHz). The generation rate for
      MersenneTwister was about 27 millions doubles per second (remember we generate two 32 bits integers for
      each double). Generation rates for other PRNG, relative to MersenneTwister:
      </p>

      <p>
        <table border="1" align="center">
          <tr BGCOLOR="#CCCCFF"><td colspan="2"><font size="+2">Example of performances</font></td></tr>
          <tr BGCOLOR="#EEEEFF"><font size="+1"><td>Name</td><td>generation rate (relative to MersenneTwister)</td></font></tr>
          <tr><td><a href="../../../../../org/apache/commons/math3/random/MersenneTwister.html" title="class in org.apache.commons.math3.random"><code>MersenneTwister</code></a></td><td>1</td></tr>
          <tr><td><a href="../../../../../org/apache/commons/math3/random/JDKRandomGenerator.html" title="class in org.apache.commons.math3.random"><code>JDKRandomGenerator</code></a></td><td>between 0.96 and 1.16</td></tr>
          <tr><td><a href="../../../../../org/apache/commons/math3/random/Well512a.html" title="class in org.apache.commons.math3.random"><code>Well512a</code></a></td><td>between 0.85 and 0.88</td></tr>
          <tr><td><a href="../../../../../org/apache/commons/math3/random/Well1024a.html" title="class in org.apache.commons.math3.random"><code>Well1024a</code></a></td><td>between 0.63 and 0.73</td></tr>
          <tr><td><a href="../../../../../org/apache/commons/math3/random/Well19937a.html" title="class in org.apache.commons.math3.random"><code>Well19937a</code></a></td><td>between 0.70 and 0.71</td></tr>
          <tr><td><a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a></td><td>between 0.57 and 0.71</td></tr>
          <tr><td><a href="../../../../../org/apache/commons/math3/random/Well44497a.html" title="class in org.apache.commons.math3.random"><code>Well44497a</code></a></td><td>between 0.69 and 0.71</td></tr>
          <tr><td><a href="../../../../../org/apache/commons/math3/random/Well44497b.html" title="class in org.apache.commons.math3.random"><code>Well44497b</code></a></td><td>between 0.65 and 0.71</td></tr>
        </table>
      </p>

      <p>
      So for most simulation problems, the better generators like <a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a> and <a href="../../../../../org/apache/commons/math3/random/Well44497b.html" title="class in org.apache.commons.math3.random"><code>Well44497b</code></a> are probably very good choices.
      </p>

      <p>
      Note that <em>none</em> of these generators are suitable for cryptography. They are devoted
      to simulation, and to generate very long series with strong properties on the series as a whole
      (equidistribution, no correlation ...). They do not attempt to create small series but with
      very strong properties of unpredictability as needed in cryptography.
      </p></div>
</div>
<!-- ======= 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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.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/primes/package-summary.html">Prev Package</a></li>
<li><a href="../../../../../org/apache/commons/math3/special/package-summary.html">Next Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/random/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<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>
