{"_id":"random-tools","_rev":"17-cba391b47b974ae48e23f014994ff5a1","name":"random-tools","description":"utility random functions","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.1":{"name":"random-tools","version":"0.0.1","main":"./index.js","engines":{"node":"*"},"author":{"name":"SHIN Suzuki","email":"shinout310@gmail.com"},"description":"utility random functions","tags":["random","xorshift","weight","selection","algorithm"],"_npmUser":{"name":"shinout","email":"shinout310@gmail.com"},"_id":"random-tools@0.0.1","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.5.9","_defaultsLoaded":true,"dist":{"shasum":"d23f499be1975c9c270acc515fb9eb325c21088a","tarball":"https://registry.npmjs.org/random-tools/-/random-tools-0.0.1.tgz","integrity":"sha512-GB67Kkn1QjlKYBdJEF1yVExBjY31kI3vH1/rHLcD43Gh321X4wGHTfVFK9FCXnzYIsRbhHq764cY4eU2llKytw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFBISRCuHKdjHtJZxat2e94Fq1TZqww+4WjaWomO5037AiEA0f87Mwe0oYe2e8q7tp/97245XO7oh++UVwTQ9oKxskU="}]},"maintainers":[{"name":"shinout","email":"shinout310@gmail.com"}],"directories":{}},"0.0.2":{"name":"random-tools","version":"0.0.2","main":"./index.js","engines":{"node":"*"},"author":{"name":"SHIN Suzuki","email":"shinout310@gmail.com"},"description":"utility random functions","tags":["random","xorshift","weight","selection","algorithm"],"_npmUser":{"name":"shinout","email":"shinout310@gmail.com"},"_id":"random-tools@0.0.2","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.5.9","_defaultsLoaded":true,"dist":{"shasum":"db9a298d3db7cdd581419f5e888f21ccc15dadb7","tarball":"https://registry.npmjs.org/random-tools/-/random-tools-0.0.2.tgz","integrity":"sha512-fjLT9Nd9Nrfn1E1TEueljBW5O21SXAJDXhhZXr1rQISCSjx6MhQXbMc+9wr9MTAfXXbI2QSvy7DnrWdVh5Jr3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHYPcy9rINCbA24VCq3eKyo2giDVLRW1um3OFwwqjsIrAiEA/t4Cj8iQi09mB31cZSx8qhvwP+DqHCMXQoccZ+l1rdA="}]},"maintainers":[{"name":"shinout","email":"shinout310@gmail.com"}]},"0.0.3":{"name":"random-tools","version":"0.0.3","main":"./index.js","engines":{"node":"*"},"author":{"name":"SHIN Suzuki","email":"shinout310@gmail.com"},"description":"utility random functions","tags":["random","xorshift","weight","selection","algorithm"],"_npmUser":{"name":"shinout","email":"shinout310@gmail.com"},"_id":"random-tools@0.0.3","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.105","_nodeVersion":"v0.6.1","_defaultsLoaded":true,"dist":{"shasum":"fcc0ebbd7fd247c855a2389f8fb03c0e50119e40","tarball":"https://registry.npmjs.org/random-tools/-/random-tools-0.0.3.tgz","integrity":"sha512-j7wrPlURC/oKrlls8jff0cXZnAEQh5FwjqfmoQIA4Zay7r01fwbwk4A4dDn8OzgdstZIuLoj6HluWqhNz2uRdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAkQFMWtxmT4/aTa4yDBZ5jYsUNSV25oSfnh7LU1Z2KMAiAv84C5J4Tld37I7D5DJi9GHouo9YBj8NlFP8wNgq3Y9w=="}]},"maintainers":[{"name":"shinout","email":"shinout310@gmail.com"}]},"0.0.4":{"name":"random-tools","version":"0.0.4","main":"./index.js","engines":{"node":"*"},"author":{"name":"SHIN Suzuki","email":"shinout310@gmail.com"},"description":"utility random functions","tags":["random","xorshift","weight","selection","algorithm"],"_npmUser":{"name":"shinout","email":"shinout310@gmail.com"},"_id":"random-tools@0.0.4","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.105","_nodeVersion":"v0.6.1","_defaultsLoaded":true,"dist":{"shasum":"70df9b51556f6afde1c409cbf83b3fa614177be1","tarball":"https://registry.npmjs.org/random-tools/-/random-tools-0.0.4.tgz","integrity":"sha512-jsFMAw+r+MPlzzsilcQ4oUnBS4sdZ0TtqwuYItAHqZwoPTJLnvf8ySC6uBaZr4/3+S4Prg/Kxzeb5XJFWwV1hQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEBVGxekAkkB3B1mlDMTcx3ARWqjejBxFqmHWuFta0AAIgNdPQcCL+NzWsuVJoAAnPqOdGtTxjahg8SZe7sjPJ0sg="}]},"maintainers":[{"name":"shinout","email":"shinout310@gmail.com"}]},"0.0.5":{"name":"random-tools","version":"0.0.5","main":"./index.js","engines":{"node":"*"},"author":{"name":"SHIN Suzuki","email":"shinout310@gmail.com"},"description":"utility random functions","tags":["random","xorshift","weight","selection","algorithm","shuffle"],"_npmUser":{"name":"shinout","email":"shinout310@gmail.com"},"_id":"random-tools@0.0.5","dependencies":{},"devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.12","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"e2b1d7ec0d61f18bab34b61a79f68eac51608cfa","tarball":"https://registry.npmjs.org/random-tools/-/random-tools-0.0.5.tgz","integrity":"sha512-hevdA14IYsLPwEbPVi6eAeafoHXY5OE20NEFBaJ3P8cpQPFmYXGdoIrYYSx0kRCFx1KPMAB2X1ICtdlReQ+Ltg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEm8dlPbVMASEON+4cWXVWuTKwwZTix+T1vwPPQaMlfCAiEAvXisrfyfJJcsQGUSAfC4rhRZf2SZxot2LAy9CShnNQE="}]},"readme":"random-tools\n==========\nrandom utils in JS\n\n----------------\n* [0.0.1]: release\n\nSample\n----------------\n\n### Installation ###\n    git clone git://github.com/shinout/browser.git\n\n    OR\n\n    npm install random-tools\n\n### Usage ###\n#### get random int ####\n    var randomInt = require('random-tools').randomInt;\n    var a = randomInt(3); // one of [0, 1, 2, 3] in the same probability\n    var a = randomInt(3, 1); // one of [1, 2, 3] in the same probability\n    var a = randomInt(100, 96); // one of [96, 97, 98, 99, 100] in the same probability\n\n\n#### get random number from a normal distribution ####\n    var normalRandom = require('random-tools').normalRandom;\n    var a = normalRandom(50, 10); // get a random number from N(50, 10)\n\n\n#### weighted selection ####\n    var WeightedSelection = require(\"random-tools\").WeightedSelection;\n  \n    // set hash table of choices\n    var sel = new WeightedSelection({\n      \"hoge\" : 1,\n      \"fuga\" : 5,\n      \"piyo\" : 2,\n      \"poge\" : 0\n    });\n\n    // get one of the given keys\n    var a = sel.random(); // one of \"hoge\", \"fuga\", \"piyo\"\n  \n    /**\n     * the probability to get \"hoge\" = 1 / (1 + 5 + 2) = 1/8\n     *                        \"fuga\" = 5 / (1 + 5 + 2) = 5/8\n     *                        \"piyo\" = 2 / (1 + 5 + 2) = 2/8\n     *                        \"poge\" = 0 / (1 + 5 + 2) = 0/8 = 0\n     */\n\n    // get the number of valid keys\n    var len = sel.length; // 3. \"poge\" is not counted.\n  \n    // get total number of cases\n    var total = sel.total; // 8.  = 1 + 5 + 2 + 0\n\n\n#### XORShift ####\n    var XORShift = require('random-tools').XORShift;\n\n    // 1st arg: seed, \n    // 2nd arg: normalize to uniform distribution of [0, 1)\n    var random = XORShift(new Date().getTime(), true);\n    var a = random(); // get a random number from uniform distribution [0, 1)\n\n\n#### use XORShift internally for each random method ####\n    var a = randomInt(3, 0, \"xorshift\"); // one of [0, 1, 2, 3] using XORShift algorithm\n    var b = normalRandom(40, 10, \"xorshift\"); // N(40, 10) using XORShift algorithm\n    var c = new WeightedSelection({a: 1, b: 3}, \"xorshift\"); // using XORShift algorithm\n","maintainers":[{"name":"shinout","email":"shinout310@gmail.com"}]}},"maintainers":[{"name":"shinout","email":"shinout310@gmail.com"}],"time":{"modified":"2022-06-25T11:47:22.325Z","created":"2011-10-29T17:39:02.999Z","0.0.1":"2011-10-29T17:39:05.853Z","0.0.2":"2011-10-30T14:43:16.487Z","0.0.3":"2012-01-25T06:46:59.028Z","0.0.4":"2012-01-25T08:19:42.287Z","0.0.5":"2013-01-06T06:25:48.063Z"},"author":{"name":"SHIN Suzuki","email":"shinout310@gmail.com"}}