UNPKG

ultra-mega-enumerator

Version:

Ultra Mega Enumerator is a lightweight library designed to enumerate various combinatorial objects.

41 lines (40 loc) 1.99 kB
export declare class Numbers { static divides(k: number, n: number): boolean; static factors(n: number): Set<number>; static isPowerOfTwo(n: number): boolean; static minDistMod12(a: number, b: number): number; static correctMod(a: number, b: number): number; static prime(n0: number): boolean; static primeFactorization(n0: number): [number[], number[]]; static totient(n: number): number; static gcd(a0: number, b0: number): number; static lcm(a: number, b: number): number; static catalan(n: number): number; static bell(n: number): number; static binomial(n: number, k: number): number; static multinomial(n: number[]): number; static factorial(n: number): number; static triangularNumber(n: number): number; static reverseTriangularNumber(n: number): number; /** * Expands the bits of the number `n` by inserting extra characters after each bit. * * When `filler` is '0', it inserts k zeros after each bit (dilating the bits). * When `filler` is 'bit', it repeats the bit k times after the original bit (replicating the bit). * * @param n - The original number. * @param k - The number of extra characters to insert after each bit. * @param filler - Either '0' (to insert zeros) or 'bit' (to repeat the bit). Defaults to '0'. * @returns The new number after the expansion. */ static expandBits(n: number, k: number, filler?: '0' | 'bit'): number; static decodeCantor(v: number): [number, number]; static decodeIntervals(iPrime: number): number; static CantorIntervalBinaryNumber(a: number, b: number): number; static getPermutation(n: number): number[]; static permuteBits(a: number, b: number): number; static toBalancedTernary(n: number, nbdigits: number): number[]; static fromBalancedTernary(trits: number[]): number; static toBinary(n: number, nbdigits: number): number[]; static fromBinary(bits: number[]): number; }