blob: 8f1f9ecc56f3a54a6b6d08279ccb67beec6f4b96 [file] [log] [blame]
<!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>CombinatoricsUtils (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="CombinatoricsUtils (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/CombinatoricsUtils.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/util/Combinations.html" title="class in org.apache.commons.math3.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/util/CompositeFormat.html" title="class in org.apache.commons.math3.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/util/CombinatoricsUtils.html" target="_top">Frames</a></li>
<li><a href="CombinatoricsUtils.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>Constr&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>Constr&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.util</div>
<h2 title="Class CombinatoricsUtils" class="title">Class CombinatoricsUtils</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.util.CombinatoricsUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="strong">CombinatoricsUtils</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></pre>
<div class="block">Combinatorial utilities.</div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>3.3</dd>
<dt><span class="strong">Version:</span></dt>
<dd>$Id$</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficient(int, int)">binomialCoefficient</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block">Returns an exact representation of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficientDouble(int, int)">binomialCoefficientDouble</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block">Returns a <code>double</code> representation of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#binomialCoefficientLog(int, int)">binomialCoefficientLog</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block">Returns the natural <code>log</code> of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#checkBinomial(int, int)">checkBinomial</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block">Check binomial preconditions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;int[]&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#combinationsIterator(int, int)">combinationsIterator</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block">Returns an iterator whose range is the k-element subsets of {0, ..., n - 1}
represented as <code>int[]</code> arrays.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorial(int)">factorial</a></strong>(int&nbsp;n)</code>
<div class="block">Returns n!.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorialDouble(int)">factorialDouble</a></strong>(int&nbsp;n)</code>
<div class="block">Compute n!, the<a href="http://mathworld.wolfram.com/Factorial.html">
factorial</a> of <code>n</code> (the product of the numbers 1 to n), as a
<code>double</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#factorialLog(int)">factorialLog</a></strong>(int&nbsp;n)</code>
<div class="block">Compute the natural logarithm of the factorial of <code>n</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/util/CombinatoricsUtils.html#stirlingS2(int, int)">stirlingS2</a></strong>(int&nbsp;n,
int&nbsp;k)</code>
<div class="block">Returns the <a
href="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html">
Stirling number of the second kind</a>, "<code>S(n,k)</code>", the number of
ways of partitioning an <code>n</code>-element set into <code>k</code> non-empty
subsets.</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">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="binomialCoefficient(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>binomialCoefficient</h4>
<pre>public static&nbsp;long&nbsp;binomialCoefficient(int&nbsp;n,
int&nbsp;k)
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/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Returns an exact representation of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.
<p>
<Strong>Preconditions</strong>:
<ul>
<li> <code>0 &lt;= k &lt;= n </code> (otherwise
<code>MathIllegalArgumentException</code> is thrown)</li>
<li> The result is small enough to fit into a <code>long</code>. The
largest value of <code>n</code> for which all coefficients are
<code>&lt; Long.MAX_VALUE</code> is 66. If the computed value exceeds
<code>Long.MAX_VALUE</code> an <code>ArithMeticException</code> is
thrown.</li>
</ul></p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the size of the set</dd><dd><code>k</code> - the size of the subsets to be counted</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n choose k</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<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/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result is too large to be
represented by a long integer.</dd></dl>
</li>
</ul>
<a name="binomialCoefficientDouble(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>binomialCoefficientDouble</h4>
<pre>public static&nbsp;double&nbsp;binomialCoefficientDouble(int&nbsp;n,
int&nbsp;k)
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/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Returns a <code>double</code> representation of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.
<p>
<Strong>Preconditions</strong>:
<ul>
<li> <code>0 &lt;= k &lt;= n </code> (otherwise
<code>IllegalArgumentException</code> is thrown)</li>
<li> The result is small enough to fit into a <code>double</code>. The
largest value of <code>n</code> for which all coefficients are <
Double.MAX_VALUE is 1029. If the computed value exceeds Double.MAX_VALUE,
Double.POSITIVE_INFINITY is returned</li>
</ul></p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the size of the set</dd><dd><code>k</code> - the size of the subsets to be counted</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n choose k</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<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/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result is too large to be
represented by a long integer.</dd></dl>
</li>
</ul>
<a name="binomialCoefficientLog(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>binomialCoefficientLog</h4>
<pre>public static&nbsp;double&nbsp;binomialCoefficientLog(int&nbsp;n,
int&nbsp;k)
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/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Returns the natural <code>log</code> of the <a
href="http://mathworld.wolfram.com/BinomialCoefficient.html"> Binomial
Coefficient</a>, "<code>n choose k</code>", the number of
<code>k</code>-element subsets that can be selected from an
<code>n</code>-element set.
<p>
<Strong>Preconditions</strong>:
<ul>
<li> <code>0 &lt;= k &lt;= n </code> (otherwise
<code>IllegalArgumentException</code> is thrown)</li>
</ul></p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the size of the set</dd><dd><code>k</code> - the size of the subsets to be counted</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n choose k</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<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/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result is too large to be
represented by a long integer.</dd></dl>
</li>
</ul>
<a name="factorial(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factorial</h4>
<pre>public static&nbsp;long&nbsp;factorial(int&nbsp;n)
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/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Returns n!. Shorthand for <code>n</code> <a
href="http://mathworld.wolfram.com/Factorial.html"> Factorial</a>, the
product of the numbers <code>1,...,n</code>.
<p>
<Strong>Preconditions</strong>:
<ul>
<li> <code>n &gt;= 0</code> (otherwise
<code>IllegalArgumentException</code> is thrown)</li>
<li> The result is small enough to fit into a <code>long</code>. The
largest value of <code>n</code> for which <code>n!</code> <
Long.MAX_VALUE} is 20. If the computed value exceeds <code>Long.MAX_VALUE</code>
an <code>ArithMeticException </code> is thrown.</li>
</ul>
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - argument</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n!</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the result is too large to be represented
by a <code>long</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>n &lt; 0</code>.</dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if <code>n &gt; 20</code>: The factorial value is too
large to fit in a <code>long</code>.</dd></dl>
</li>
</ul>
<a name="factorialDouble(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factorialDouble</h4>
<pre>public static&nbsp;double&nbsp;factorialDouble(int&nbsp;n)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block">Compute n!, the<a href="http://mathworld.wolfram.com/Factorial.html">
factorial</a> of <code>n</code> (the product of the numbers 1 to n), as a
<code>double</code>.
The result should be small enough to fit into a <code>double</code>: The
largest <code>n</code> for which <code>n! &lt; Double.MAX_VALUE</code> is 170.
If the computed value exceeds <code>Double.MAX_VALUE</code>,
<code>Double.POSITIVE_INFINITY</code> is returned.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Argument.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n!</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="factorialLog(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factorialLog</h4>
<pre>public static&nbsp;double&nbsp;factorialLog(int&nbsp;n)
throws <a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block">Compute the natural logarithm of the factorial of <code>n</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Argument.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>n!</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd></dl>
</li>
</ul>
<a name="stirlingS2(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stirlingS2</h4>
<pre>public static&nbsp;long&nbsp;stirlingS2(int&nbsp;n,
int&nbsp;k)
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/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a>,
<a href="../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Returns the <a
href="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html">
Stirling number of the second kind</a>, "<code>S(n,k)</code>", the number of
ways of partitioning an <code>n</code>-element set into <code>k</code> non-empty
subsets.
<p>
The preconditions are <code>0 &lt;= k &lt;= n </code> (otherwise
<code>NotPositiveException</code> is thrown)
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the size of the set</dd><dd><code>k</code> - the number of non-empty subsets</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>S(n,k)</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>k &lt; 0</code>.</dd>
<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/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if some overflow happens, typically for n exceeding 25 and
k between 20 and n-2 (S(n,n-1) is handled specifically and does not overflow)</dd><dt><span class="strong">Since:</span></dt>
<dd>3.1</dd></dl>
</li>
</ul>
<a name="combinationsIterator(int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>combinationsIterator</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;int[]&gt;&nbsp;combinationsIterator(int&nbsp;n,
int&nbsp;k)</pre>
<div class="block">Returns an iterator whose range is the k-element subsets of {0, ..., n - 1}
represented as <code>int[]</code> arrays.
<p>
The arrays returned by the iterator are sorted in descending order and
they are visited in lexicographic order with significance from right to
left. For example, combinationsIterator(4, 2) returns an Iterator that
will generate the following sequence of arrays on successive calls to
<code>next()</code>:<br/>
<code>[0, 1], [0, 2], [1, 2], [0, 3], [1, 3], [2, 3]</code>
</p>
If <code>k == 0</code> an Iterator containing an empty array is returned and
if <code>k == n</code> an Iterator containing [0, ..., n -1] is returned.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Size of the set from which subsets are selected.</dd><dd><code>k</code> - Size of the subsets to be enumerated.</dd>
<dt><span class="strong">Returns:</span></dt><dd>an <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>iterator</code></a> over the k-sets in n.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<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></dl>
</li>
</ul>
<a name="checkBinomial(int, int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>checkBinomial</h4>
<pre>public static&nbsp;void&nbsp;checkBinomial(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/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></pre>
<div class="block">Check binomial preconditions.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Size of the set.</dd><dd><code>k</code> - Size of the subsets to be counted.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>n &lt; 0</code>.</dd>
<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></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/CombinatoricsUtils.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/util/Combinations.html" title="class in org.apache.commons.math3.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/util/CompositeFormat.html" title="class in org.apache.commons.math3.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/util/CombinatoricsUtils.html" target="_top">Frames</a></li>
<li><a href="CombinatoricsUtils.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>Constr&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>Constr&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>