ultra-mega-enumerator
Version:
Ultra Mega Enumerator is a lightweight library designed to enumerate various combinatorial objects.
33 lines (32 loc) • 1.35 kB
TypeScript
import { BitSet } from './BitSet';
/**
* Class representing a Combination, which extends BitSet to manage combinations
* of bits. It includes additional methods specific to combination logic.
*/
export declare class Combination extends BitSet {
constructor(n: number);
getN(): number;
static fromBooleanArray(array: boolean[]): Combination;
static createWithSizeAndSet(n: number, set: Set<number>): Combination;
asSequence(): number[];
combinationString(): string;
getIntervalVector(): number[];
getCombinationAsArray(): number[];
intersect(c: Combination): Combination;
minus(c: Combination): Combination;
static merge(a: Combination, b: Combination): Combination;
mergeWith(a: Combination): Combination;
symmetricDifference(y: Combination): Combination;
rotate(t: number): Combination;
static generateRandom(n: number, k: number): Combination;
static combinationFromBinaryArray(bitArray: boolean[]): Combination;
static combinationFromBitSet(x: BitSet): Combination;
partition(sequence: number[]): Combination[];
private partitionByIndices;
private copyFrom;
copy(): Combination;
equals(obj: any): boolean;
toString(): string;
static generateAll(n: number, k: number): Combination[];
static combinationRefinements(c: Combination): Combination[];
}