0.1.5 • Published 10 years ago

rc4 v0.1.5

Weekly downloads
92,281
License
MIT
Repository
github
Last release
10 years ago

rc4

RC4 random number generator

Build Status NPM version Dependency Status Code Climate

Synopsis

var RC4 = require("rc4");

var generator = new RC4("my seed"); // string or array of integers
// without the seed RNG is seeded with random data from Math.random

// byte := integer ∈ [0, 255]
console.log(generator.randomByte());

// float := number ∈ [0, 1)
console.log(generator.randomFloat());

// save & load state
var state = generator.currentState();
console.log(generator.randomFloat()); // 0.14815412228927016
generator.setState(state);
console.log(generator.randomFloat()); // 0.14815412228927016

RC4small

There is also RC4small generator, with smaller internal state:

var RC4small = require("rc4").RC4small;

var generator = new RC4small("my seed");

var stateString = generator.currentStateString(); // 18 character hexadecimal string
console.log(generator.randomFloat());  // 0.9362740234937519
generator.setStateString(stateString);
console.log(generator.randomFloat()); // 0.9362740234937519

API

Both RC4 and RC4small have following random value generating methods:

randomByte   : () ⇒ { x : ℕ | x ∈ [0, 255] }
randomUInt32 : () ⇒ { x : ℕ | x ∈ [0, 2^32-1] }
randomFloat  : () ⇒ { x : R | x ∈ [0, 1) }
random       : (a : ℤ)        ⇒ { x : ℤ | x ∈ [0, a] }
random       : (a : ℤ, b : ℤ) ⇒ { x : ℤ | x ∈ [a, b] }

Changelog

  • 0.1.5 2015-04-24 Better isInteger, random works with bigger ranges
  • 0.1.4 2015-02-25 Dev dependencies update