2014-03-28 40 views
0

我需要一个介于0和整数之间的随机整数,其中包含超过1000个小数位。范围内的随机大整数JavaScript

使用整数这个大很容易:big-integer(NPM),但没有随机方法,Math.random()没有表达足够的精度来覆盖域。

有谁知道一个聪明的方法在JavaScript中产生大范围的伪随机整数?

+1

注意,[大整数](https://www.npmjs.org/package/大整数)现在有一个'randBetween'方法。 –

回答

2

我认为在node.js中你的情况最好的解决办法是crypto.randomBytes(size, [callback]);

+0

您能详细说明如何将随机字节的缓冲区转换为X和Y之间的整数?这比你的简短回答看起来要少得多。 –

+1

我只能对普通整数进行操作,但由于“大整数”模块不支持十六进制数字,所以对于大数字很难做到这一点 – micnic

+0

啊,好吧,这很有道理。 '大整数'似乎代表使用整数数组作为一个大的基表示,得到一个好的分布将是一个比它的目的更加需要的算法。 –

0

也许这:

var crypto = require('crypto'); 
var biformat = require('biguint-format'); 

// Adjust # bytes as needed 
var seed = biformat(crypto.randomBytes(8), 'dec'); 
bigInt(seed);