Combination Constructor (Int32, Int32, Int64) |
Namespace: Kaos.Combinatorics
public Combination( int choices, int picks, long rank )
Exception | Condition |
---|---|
ArgumentOutOfRangeException | When negative value supplied; when picks greater than choices. |
OverflowException | When too many choices. |
Supplying a value for choices that is greater than picks will instantiate a k-combination also known as a pick-combination.
If the supplied rank is out of the range (0..RowCount-1), it will be normalized to the valid range. For example, a value of -1 will produce the last row in the ordered table.using System; using System.Linq; using Kaos.Combinatorics; namespace ExampleApp { class CnExample05 { static void Main() { // Create a k-combination: var cn = new Combination (choices:10, picks:7, rank:110); Console.WriteLine ($"n={cn.Choices}, k={cn.Picks}, rank={cn.Rank}:\n"); // Access elements using the default enumerator: var text = String.Concat (cn.Select (ei => (char) ('A' + ei))); Console.WriteLine ($"{text}\n"); // Access elements using the indexer: for (int i = 0; i < cn.Picks; ++i) Console.WriteLine ($"Element at {i} is {cn[i]}"); } /* Output: n=10, k=7, rank=110: BDFGHIJ Element at 0 is 1 Element at 1 is 3 Element at 2 is 5 Element at 3 is 6 Element at 4 is 7 Element at 5 is 8 Element at 6 is 9 */ } }