Skip to content

Latest commit

 

History

History
72 lines (56 loc) · 2.18 KB

README.md

File metadata and controls

72 lines (56 loc) · 2.18 KB

⚡ Binary Permutations Generator

A fast, zero-dependency generator for creating binary permutations with customizable format and filtering options. The use of ES6 generators allows this package to handle large values of n efficiently. Permutations are generated on-the-fly, ensuring low memory usage and smooth high performance.

🚀 Features

  • Zero dependencies – simple and lightweight.
  • Flexible format options – return results as booleans, numbers, or strings.
  • Efficient ES6 generator for large n – handles big inputs smoothly, yielding permutations one-by-one.
  • Custom filters – control how many true values appear in results.

🛠️ Installation

npm install bin-perm-gen

📖 Usage

import getBinaryPermutations from 'binary-perm-gen';

// Basic usage with default options
const generator = getBinaryPermutations(3);
for (const permutation of generator) {
  console.log(permutation);
}
// Output:
// [ false, false, false ]
// [ false, false, true ]
// [ false, true, false ]
// ...

// Using options
const generatorWithOptions = getBinaryPermutations(4, { format: 'string', minOnes: 2 });
for (const permutation of generatorWithOptions) {
  console.log(permutation);
}
// Output:
// '0011'
// '0101'
// '0110'
// '1001'
// ...

// Convert to array, recommended only for small n parameter
const generatedArray = [...getBinaryPermutations(4)];

Command Line Interface (CLI)

You can also use it via the command line:

npx bin-perm-gen 3
# [
#   [ false, false, false ],
#   [ false, false, true ],
#   [ false, true, false ],
# ...

🔧 API

getBinaryPermutations(n: number, options?: Options): Generator<string | number[] | boolean[]>

Generates all binary permutations for n bits, allowing customization through the options parameter.

  • n (number): The number of bits (must be a non-negative integer).
  • options (optional):
    • format ('boolean' | 'string' | 'number'): The output format. Defaults to 'boolean'.
    • minOnes (number): Minimum number of ones (true values) in the result. Defaults to 0.
    • maxOnes (number): Maximum number of ones (true values) in the result. Defaults to n.