Nutmeg Plundering Muse

    array-permutation

    0.2.0 • Public • Published

    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 ]
    

    Install

    npm i array-permutation

    DownloadsWeekly Downloads

    170

    Version

    0.2.0

    License

    MIT

    Last publish

    Collaborators

    • zoubin