Range-Shuffle
A unduplicated & reversible random integer generator.
Getting Started
Install
npm install --save range-shuffle
Usage
const Shuffler = ;// or; const rs = MULTIPLIER: 7 // it must be a prime number INCREMENT: 6 MODULUS: 10; const array = 0 1 2 3 4 5 6 7 8 9;const shuffled = array;// [6, 3, 0, 7, 4, 1, 8, 5, 2, 9]const reversed = shuffled;// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Principle
Note
All constants & method arguments can be both Number
and String
type.
If you want to use a large number over Number.MAX_SAFE_INTEGER
(9007199254740991), use a String
type input like .LCG('9999999999999999')
.
API
new Shuffler(constants)
constants
is a object that must contain three constants:
MULTIPLIER
: Must be a prime number.INCREMENT
MODULUS
: Range for shuffling.0 ~ (MODULUS - 1)
.LCG(integer)
Performs linear congruential generating based on constants.
.reverseLCG(integer)
Restore linear congruential generating based on constants.