Added (N choose K) function.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3580 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ted V
2005-05-27 23:04:42 +00:00
parent 3f438188dc
commit ee20db4390
@@ -144,4 +144,19 @@ public class MathUtil
// the standard deviation is the square root of the variance
return new float[] { mean, variance, (float)Math.sqrt(variance) };
}
/**
* Computes (N choose K), the number of ways to select K different
* elements from a set of size N.
*/
public static int choose (int n, int k)
{
// Base case: One way to select or not select the whole set
if (k <= 0 || k >= n) {
return 1;
}
// Recurse using pascal's triangle
return (choose(n-1, k-1) + choose(n-1, k));
}
}