我想要評估Node.js中的僞隨機樸素隨機數生成器(prng):Math.random
以及其他第三方prng。通過僞隨機樸素隨機數生成器生成隨機數序列的正確方法
我使用的測試套件是ENT。
我所面臨的問題是如何產生的耳鼻喉科通過PRNG在Node.js的輸入文件:
function generateNumber() {
return Math.floor(Math.random() * 10)
}
const numbers = []
for (let i = 0; i < 10000000;i++) {
const r = generateNumber()
numbers.push(r)
}
let result = ''
numbers.map(function (t) { result += t })
const fs = require('fs')
fs.writeFile('output.txt', result)
從上面生成的文件並沒有很好地工作耳鼻喉科。不過,我創建了Linux命令的另一個文件:
dd if=/dev/random of=random_output count=8192
這個輸出效果很好。我發現我用nodejs創建的文件是0s和1s作爲文本文件。也許序列應該被轉換成二進制文件。我想知道如何修改我的JavaScript代碼?
您是否在windows平臺上使用node.js創建文件? – Psi
@Psi yes windows 10 – itenyh
所以,也許你需要在寫入文件之前將文件切換到二進制模式。否則,windows將所有的0x0a轉換爲0x0d 0x0a =>'fs.writeFile('output.txt',result,'wb')' – Psi