Javascript math.random()和其他RNG函数的工作频率如何?

Javascript math.random()和其他RNG函数的工作频率如何?,javascript,Javascript,所以我最近才开始编码,我有一个关于RNG函数的问题,比如Math.random()。它们多长时间响一次?每次需要一个值时,它都会产生另一个数字。例如,在 var num1; num1 = Math.random(); alert(num1) num1 = Math.random(); alert(num1); 两个JS警报的编号是否不同?使用类似 function getRandomInt(min, max) { return Math.floor(Math.random() * (max

所以我最近才开始编码,我有一个关于RNG函数的问题,比如Math.random()。它们多长时间响一次?每次需要一个值时,它都会产生另一个数字。例如,在

var num1; 
num1 = Math.random();
alert(num1)
num1 = Math.random();
alert(num1);
两个JS警报的编号是否不同?使用类似

function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

而不是在上面的程序中使用Math.random()。

Math.random的规范说明如下:

使用依赖于实现的算法或策略,返回带正号、大于或等于0但小于1、随机或伪随机选择、在该范围内近似均匀分布的数值。此函数不接受任何参数

因此,它没有明确地解决这个问题——但这本身就是一个答案。它是一个函数,当你调用它时,它会返回一个随机数。唯一有意义的是对多个连续呼叫保持安全。的确

Math.random() == Math.random()
将(几乎)始终返回false,如预期的那样。实现可能会给出不同的结果,是的,但是很难找到一个伪随机生成器,当从同一个线程反复调用时,它不会返回不同的值


“近似均匀分布”基本上意味着
返回0.3
不是一致性实现,不管掷骰子导致该常数的公平程度如何。这也意味着两个连续的调用完全可能返回相同的数字——这只是不太可能:)

数学。Random只是一个给出随机数的函数。它没有内存来保存已经生成的数字,因此不能保证不会生成重复的数字,尽管可能性很低


在您的第二个示例中,将在最小值到最大值之间生成一个随机数,包括最小值和最大值。

同时问问自己:您的代码是否会显示一个警报?或者它会在您每次调用
alert
时发出警报吗?欢迎使用。请访问,了解如何提问。对你来说,这只是一个尝试的问题。是的,他们每次都会提供一个新号码。每次调用
Math.random()
时,您都会得到一个随机号码。在您的第一个示例中,您将得到其中的两个。您的第二个函数仍然依赖于
Math.random()
,并且知道可以获得原始随机值的算法。@Luaan,thx用于更新。我想没有:)