bin-perm-gen
v1.0.5
Published
Generate binary permutations with customizable formats and filters. Lightweight, zero-dependency, and efficient for handling large inputs using ES6 generators.
Downloads
186
Maintainers
Readme
⚡ 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 to0
.maxOnes
(number): Maximum number of ones (true
values) in the result. Defaults ton
.