1.0.0 • Published 9 years ago

partition-refinement-iterator v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

partition-refinement-iterator

Progressively refine partitions of a finite set.

Think of it like a more generic binary search that will keep dividing a finite set until all numbers in it have been emitted.

Example

var iterator = require('partition-refinement-iterator');

var iterate = iterator(Number(process.argv[2]));

while (true) {
  var n = iterate();
  if (typeof n == 'undefined') break;
  console.log(n);
}

Output:

 ∴  partition-refinement-iterator : node example.js 1
0
 ∴  partition-refinement-iterator : node example.js 2
0
1
 ∴  partition-refinement-iterator : node example.js 3
0
1
2
 ∴  partition-refinement-iterator : node example.js 4
0
2
1
3
 ∴  partition-refinement-iterator : node example.js 5
0
2
1
3
4
 ∴  partition-refinement-iterator : node example.js 6
0
3
1
4
2
5
 ∴  partition-refinement-iterator : node example.js 7
0
3
1
5
2
4
6
 ∴  partition-refinement-iterator : node example.js 8
0
4
2
6
1
3
5
7

Installation

$ npm install partition-refinement-iterator

API

iterator(length)

Return a function that can be called length times to get the next index in the refinement process.

License

MIT