javascript 生成可重复随机数
使用相同种子,输出相同的随机数
javascript 生成可重复随机数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
function* mulberry32(seed) {
let t = seed += 0x6D2B79F5;
// Generate numbers indefinitely
while(true) {
t = Math.imul(t ^ t >>> 15, t | 1);
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
yield ((t ^ t >>> 14) >>> 0) / 4294967296;
}
}
const delay = (n) => new Promise(resolve=>setTimeout(()=>resolve(),n));
const run = async() => {
const g = mulberry32(100);
for(let n=0;n<10;n++) {
await delay(1000).then(msg=>msg && console.log(msg));
console.log(g.next().value);
}
console.log('Done!');
};
run();
}
本文由作者按照 CC BY 4.0 进行授权