/
index.js
43 lines (41 loc) 路 1.17 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
define([], factory);
} else if (typeof module === 'object' && module.exports) {
module.exports = factory();
} else {
// In the browser, expose our function to `window.DeadbeefRand`
root.DeadbeefRand = factory();
}
})(typeof self !== 'undefined' ? self : this, function () {
/**
* Deadbeef pseudo-random number generator.
*
* @example
*
* // Seed it with some value.
* var deadbeef = new DeadbeefRand(4); // chosen by fair dice roll
* // Generate a pseudo-random number.
* var n = deadbeef.rand();
*
* @param {Number} seed
* @link http://inglorion.net/software/deadbeef_rand/DeadbeefRand.js
* @link http://inglorion.net/software/deadbeef_rand/
*/
function DeadbeefRand(seed) {
seed = typeof seed === 'undefined' ? 0 : seed;
var beef = 0xdeadbeef;
/**
* @returns {Number} A 32-bit pseudorandom number.
*/
this.rand = function () {
seed = (seed << 7) ^ (((seed >> 25) & 0x7f) + beef);
if (seed < 0) {
seed += 0x100000000;
}
beef = (beef << 7) ^ (((beef >> 25) & 0x7f) + 0xdeadbeef);
return seed;
};
}
return DeadbeefRand;
});