Advertisement
Guest User

c^n_k.cs

a guest
Nov 21st, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.50 KB | None | 0 0
  1. private static IEnumerable<List<T>> GenerateAllCombinations<T>(IList<T> set, int subsetPower)
  2. {
  3.     var subsetIndexes = Enumerable.Range(0, subsetPower).ToArray();
  4.     while (true)
  5.     {
  6.         yield return subsetIndexes.Select(x => set[x]).ToList();
  7.         var index = subsetPower - 1;
  8.         while (index >= 0 && subsetIndexes[index] == set.Count + index - subsetPower) index--;
  9.         if (index < 0) break;
  10.         subsetIndexes[index]++;
  11.         while (index++ < subsetPower - 1) subsetIndexes[index] = subsetIndexes[index - 1] + 1;
  12.     }
  13. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement