Node.jsの擬似乱数乱数生成器(prng)を評価したいと思っています。Math.random
と他のサードパーティ製のprngを評価したいと思います。擬似乱数乱数生成器で乱数列を生成する正しい方法
私が使用するテストスイートはENTです。
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)
上から生成されたファイルは、ENTとうまく動作しませんでした:
私が直面している問題は、Node.jsの中PRNGてENT用の入力ファイルを生成する方法ということです。しかし、私はLinuxコマンドで別のファイルを作成しました:
dd if=/dev/random of=random_output count=8192
この出力はうまくいきました。 nodejsで作成したファイルがテキストファイルとして0と1であることがわかりました。多分、シーケンスはバイナリファイルに変換されるべきです。私はJavaScriptコードを変更する方法を知りたいですか?
Windowsプラットフォームでnode.jsを使用してファイルを作成しましたか? – Psi
@Psi yes windows 10 – itenyh
ファイルを書き込む前にファイルをバイナリモードに切り替える必要があるかもしれません。それ以外の場合は、すべての0x0aを0x0aに変換します。0x0a => 'fs.writeFile( 'output.txt'、result、 'wb')' – Psi