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

Beginning with version 6, NuGet package hosting is provided GitHub Package Registry. See GitHub for NuGet configuration documentation on getting packages from:

https://github.com/kaosborn/KaosCombinatorics/packages/

To install using Package Manager:

  • Install-Package Kaos.Combinatorics -Version 6.0.0

To install using the .NET CLI:

  • dotnet add package Kaos.Combinatorics --version 6.0.0

To install from local source using the Visual Studio gallery:

  1. Click Manage NuGet Packages.

  2. Set Package source to your local nuget repository.

  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:

  2. As archives, individual binaries may be extracted from the .nuget package for specific platforms. This may require changing the file extension from .nuget to .zip to access the contents. 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:

Identical documentation is available as a Microsoft Help v1 file below. This downloaded .chm file may require unblocking thru its file properties dialog.

Finally, examples are repeated in the repository wiki:

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 the .msi GAC installer requires the Microsoft Visual Studio Installer Projects extension:

Building documentation requires Sandcastle Help File Builder:

See Also