array-permutation

permutation utils

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
array-permutation
610.2.09 years ago9 years agoMinified + gzip package size for array-permutation in KB

Readme

array-permutation
permutation utils. Return Iterable for iterating all permutations of an array.

Usage

var permutation = require('array-permutation');
var range = permutation.range;
var random = permutation.random;
var shuffle = permutation.shuffle;

range(n)

Return 0,..,n-1

range(low, high, step)

Return low, low + step, low + 2 step,..., low + k step, with low + k * step < high

random(n)

Return an array populated with a random permutation of range(n)

random(low, high, step)

Return an array populated with a random permutation of range(low, high, step)

permutation(n)

Return an iterable, for iterating all permutations of range(n)

permutation(low, high, step)

Return an iterable, for iterating all permutations of range(low, high, step)

permutation()

Return an iterable, for iterating all permutations of the given array.

shuffle()

Shuffle the given array, and return it.

Example

permutation

var perm = require('..');
var iter = perm([1, 2, 3, 4]);
for (var p of iter) {
    console.log(p);
}

output:
āŒ˜ node example/permutation.js
[ 1, 2, 3, 4 ]
[ 2, 1, 3, 4 ]
[ 2, 3, 1, 4 ]
[ 2, 3, 4, 1 ]
[ 1, 3, 2, 4 ]
[ 3, 1, 2, 4 ]
[ 3, 2, 1, 4 ]
[ 3, 2, 4, 1 ]
[ 1, 3, 4, 2 ]
[ 3, 1, 4, 2 ]
[ 3, 4, 1, 2 ]
[ 3, 4, 2, 1 ]
[ 1, 2, 4, 3 ]
[ 2, 1, 4, 3 ]
[ 2, 4, 1, 3 ]
[ 2, 4, 3, 1 ]
[ 1, 4, 2, 3 ]
[ 4, 1, 2, 3 ]
[ 4, 2, 1, 3 ]
[ 4, 2, 3, 1 ]
[ 1, 4, 3, 2 ]
[ 4, 1, 3, 2 ]
[ 4, 3, 1, 2 ]
[ 4, 3, 2, 1 ]

random

var random = require('..').random;

console.log(random(5));                 // [ 3, 2, 4, 1, 0  ]
console.log(random(2, 5));              // [ 4, 3, 2  ]
console.log(random(1, 5, 2));           // [ 3, 1  ]
console.log(random([1, 2, 3, 4, 5]));   // [ 4, 5, 3, 1, 2  ]

output:
āŒ˜ node example/random.js
[ 4, 0, 1, 2, 3 ]
[ 4, 2, 3 ]
[ 3, 1 ]
[ 3, 4, 1, 5, 2 ]