コード例 #1
0
        /// <summary>
        /// Returns all k combinations of given set
        /// </summary>
        public static List <List <T> > NCombinations(List <T> set, uint k)
        {
            int cap     = (int)Recursive.Factorial((uint)set.Count) / (int)Recursive.Factorial(k) * (int)Recursive.Factorial((uint)set.Count - k);
            var results = new List <List <T> >(cap);

            NCombinationsInner(0, new int[k], set, results);
            return(results);
        }
コード例 #2
0
ファイル: Recursive.cs プロジェクト: davidalexanian/algos
 /// <summary>
 /// Computes factorial of n (complexity O(n))
 /// </summary>
 public static ulong Factorial(uint n)
 {
     if (n == 0)
     {
         return(1);
     }
     return(Recursive.Factorial(n - 1) * n);
 }