Click or drag to resize

Welcome to KaosCombinatorics

KaosCombinatorics is a .NET library that provides classes for generating combinations, k-combinations, multicombinations, k-multicombinations, permutations, k-permutations, and products that are ordered and ranked. These sequences of integers may be used to permute (rearrange) other lists of objects. Features ranking, unranking, backtracking, plain changes, and more.

The primary types provided are:

  • Combination - an ascending sequence of distinct picks from a supplied range.
  • Multicombination - an ascending sequence of repeating picks from a supplied range.
  • Permutation - a specific arrangement of distinct picks from a supplied range.
  • Product - a join of values taken from a supplied array of ranges.

This library is built as a .NET Standard project with multitargeting to:

  • .NET Standard 1.0
  • .NET Framework 4.0
  • .NET Framework 3.5
Library installation

To install using Package Manager:

  • Install-Package Kaos.Combinatorics -Version 5.0.0

To install using the .NET CLI:

  • dotnet add package Kaos.Combinatorics --version 5.0.0

To install using the Visual Studio gallery:

  1. Click Manage NuGet Packages.
  2. Select package source of nuget.org.
  3. Click Browse and input Kaos.Combinatorics.
  4. The package should appear. Click Install. As a multitargeted package, the appropriate binary will be installed for your program.

To install using a direct reference to a .dll binary:

  1. Download the .nuget package from either:

  2. As archives, individual binaries may be extracted from the .nuget package for specific platforms. A project may then reference the extracted platform-specific .dll directly.

Documentation

Installing as a NuGet package will provide IntelliSense and object browser documentation from the .xml file.

For complete documentation:

An offline version is available as a .chm file. This file may need to be unblocked using the file properties dialog:

Examples may be viewed here:

Build

Complete source code with embedded XML documentation is hosted at GitHub. This repository is a single Visual Studio solution with additional files in the root:

Building the library requires Visual Studio 2017 or greater:

Building documentation requires Sandcastle Help File Builder:

See Also