Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 days 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 (20 days ago)
- Default Branch: main
- Last Pushed: 2024-10-28T22:44:45.000Z (20 days ago)
- Last Synced: 2024-10-28T23:27:41.618Z (20 days ago)
- Topics: binary, generator, permutations
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/bin-perm-gen
- Size: 914 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
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)];
```## 🔧 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`.