![](/img/trans.png)
[英]How can I generate a cryptographically secure pseudo-random number in Javascript?
[英]How can I generate the same random number in JavaScript and Python?
在Python中,如果我使用以下代码:
import random
random.seed(123)
print(random.random())
第一个随机数始终为0.052363598850944326
,因为每次运行程序时都会给它相同的种子。
JavaScript没有内置的使用种子的方法。 我已经尝试了一个名为mersenne-twister.js的JavaScript脚本,因为这是Python使用的PRNG类型。 但是,即使我使用相同的种子,也会得到与Python不同的结果。
var m = new MersenneTwister(123);
m.genrand_int32();
该代码将在首次运行时始终返回0.6964691872708499
。
如何在Python和JavaScript中使用给定的种子获得相同的随机数?
当我将Python输出与JavaScript输出进行比较时,此库/插件对我有用。
如果不需要加密安全的伪随机数生成器,则可以使用正弦函数的小数来使用类似的方法。
在python中:
import math
def simple_random(precision=10000):
i = 1
while 1:
x = math.sin(i) * precision
yield x - math.floor(x)
i += 1
用Javascript:
var i = 1;
function simple_random(precision=10000) {
x = Math.sin(i++) * precision;
return x - Math.floor(x);
}
如果您想换种子,可以使用sin(a * i + b)之类的东西而不是sin(i)或a * sin(i + b)之类的东西,这取决于您是否找到足够好的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.