在两台机器上生成相同的半随机数

时间:2016-01-01 18:39:21

标签: javascript random

我想知道是否有办法在两台机器上同时生成相同的半随机数。这是我目前如何获得我的随机数的一个例子。

var randomValue = generateRandom( -200, 200 );

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

我能做的是在两台设备之间发送消息。我不知道这是否有用,因为在函数中调用了randomValue。我想也许我们可以使用计时器或其他东西在两台机器上产生价值。

3 个答案:

答案 0 :(得分:2)

生成0到0之间的随机值列表。 1在其中一台机器(" master")上提前使用内置发生器(Math.random()),与从属设备共享。

只要您需要具体值,请使用当前参数(最小 - 最大范围)中该列表中的下一个数字,并且您在所有计算机上都具有相同的数字。

如果你"用完了"值,生成并传输另一批(再次,提前)。

答案 1 :(得分:0)

使用'seedable'随机数生成器怎么样,Seedable JavaScript random number generator

中讨论过

github上有一个实现:https://github.com/davidbau/seedrandom

答案 2 :(得分:0)

同时在两台机器上生成相同的相同数字。

  1. 生成当前时间戳new Date().getTime()
  2. 反转这个数字(每次都是随机的)
  3. 通过划分和常数乘法得到它在(-200,200)的范围内。
  4. 在给定时间,这个号码在两台机器上是相同的。