https://github.com/kamdz/bin-perm-gen
⚡ A fast, zero-dependency generator for creating binary permutations with customizable format and filtering options.
https://github.com/kamdz/bin-perm-gen
binary generator permutations
Last synced: 4 months ago
JSON representation
⚡ A fast, zero-dependency generator for creating binary permutations with customizable format and filtering options.
- Host: GitHub
- URL: https://github.com/kamdz/bin-perm-gen
- Owner: kamdz
- License: mit
- Created: 2024-10-28T22:17:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-12T13:38:02.000Z (about 1 year ago)
- Last Synced: 2025-10-04T03:14:39.372Z (9 months ago)
- Topics: binary, generator, permutations
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/bin-perm-gen
- Size: 466 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
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
```bash
npm install bin-perm-gen
```
## 📖 Usage
```javascript
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:
```bash
npx bin-perm-gen 3
# [
# [ false, false, false ],
# [ false, false, true ],
# [ false, true, false ],
# ...
```
## 🔧 API
### `getBinaryPermutations(n: number, options?: Options): Generator`
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`.