1
JavaScriptで6桁の数値クーポンコードを生成したいと思います。JavaScriptの非繰り返し擬似乱数生成器
Preshing's algorithmのようなものを使用したいと思います。
これは私がこれまで持っているものであるは、
const p = 1000003;
function permuteQPR(x) {
const residue = x * x % p;
return (x <= p/2) ? residue : p - residue;
}
function next() {
return permuteQPR(
(permuteQPR(m_index++) + m_intermediateOffset)^0x5bf03635
);
};
const seedBase = 123456;
const seedOffset = 44;
m_index = permuteQPR(permuteQPR(seedBase) + 0x682f0161);
m_intermediateOffset = permuteQPR(
permuteQPR(seedOffset) + 0x46790905
);
for (i = 0; i < 20; i++) {
document.body.innerHTML += ('000000' + next()).substr(-6) + "<br>";
}
もjsfiddleあります。
はJavaScriptに自分でそれを変換しますか?実際には、順序付き配列をシャッフルするだけです。 http://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-nおよびhttp://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-arrayを参照してください。 -in-javascript。 –
あなたのお役に立てています..私にとっては、これは有効な質問であると思われます。配列をシャッフルするのと同じ質問をしているわけではありません。 OPが投稿したリンクは、配列のオーバーヘッドなしで一意の乱数を生成するためのものでした。 – Keith
@obiwahn、..私はちょうどあなたのリンクからソースコードを素早く変換しました。うまくいくようです。 1000万の乱数を作成してテストし、重複がないことを確認します。この質問が保留になると、私はここに投稿することができます。 – Keith