2014-03-28 496 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);