Javascript 带有自定义时间种子的随机数

Javascript 带有自定义时间种子的随机数,javascript,random,Javascript,Random,我正在尝试使用javascript创建一个如下所示的随机数 function valid(form) { var input = 0; var input = document.getElementById('custom1').value; var final_input = input.charAt(0); var number = 1000000000 - Math.floor(Math.random() * 1000000000); final_input = fin

我正在尝试使用javascript创建一个如下所示的随机数

function valid(form) {
  var input = 0;
  var input = document.getElementById('custom1').value;
  var final_input = input.charAt(0);
  var number = 1000000000 - Math.floor(Math.random() * 1000000000);
  final_input = final_input + number;
  document.getElementById('custom4').value = final_input;
}
其思想是,它将从“custom1”(输入字段之一)中获取值,然后获取第一个字符。之后,它将添加接下来的9个随机数字,并将最终值放入表单的custom4(另一个输入字段)。到目前为止,javascript运行良好。但是,我更希望随机数字与当前时间一起播种。我认为这将是非常随机的。这可能吗?

JavaScript不支持显式种子设定(这很遗憾)。这是:

返回大于或等于0的带正号的数值 但小于1,随机或伪随机选择,约 在该范围内均匀分布,使用 依赖于实现的算法或策略。此函数不需要任何时间 争论

如果你真的需要用一个给定的数字为你的生成器设定种子,你必须使用一个库,比如(我没有测试过)

但是JavaScript随机API是隐式种子的,这确保了您将得到不同的结果。没有关于如何播种的ECMAScript规范,但很可能所有浏览器都使用播种时间。MDN说

随机数生成器从当前时间开始播种,如中所示 爪哇

JavaScript不支持显式种子设定(这是一个遗憾)。这是:

返回大于或等于0的带正号的数值 但小于1,随机或伪随机选择,约 在该范围内均匀分布,使用 依赖于实现的算法或策略。此函数不需要任何时间 争论

如果你真的需要用一个给定的数字为你的生成器设定种子,你必须使用一个库,比如(我没有测试过)

但是JavaScript随机API是隐式种子的,这确保了您将得到不同的结果。没有关于如何播种的ECMAScript规范,但很可能所有浏览器都使用播种时间。MDN说

随机数生成器从当前时间开始播种,如中所示 爪哇


我必须纠正我自己。这仅适用于Mozilla(据我所知):JavaScript random API已经将当前时间用作种子。无需重复执行(并且不受支持)


该规范没有提到如何生成随机数的算法或策略,以及它是否和如何播种

我必须纠正自己。这仅适用于Mozilla(据我所知):JavaScript random API已经将当前时间用作种子。无需重复执行(并且不受支持)

该规范没有提到如何生成随机数的算法或策略,以及它是否和如何播种

谢谢。。 最后,我有下面这样的东西

function valid(form) {
  var input = 0;
  var input = document.getElementById('custom1').value;
  var final_input = input.charAt(0);
  var number = new Date().valueOf(); /*1000000000 - Math.floor(Math.random() * 1000000000);*/
  final_input = final_input + number;
  document.getElementById('custom4').value = final_input;
}
谢谢。。 最后,我有下面这样的东西

function valid(form) {
  var input = 0;
  var input = document.getElementById('custom1').value;
  var final_input = input.charAt(0);
  var number = new Date().valueOf(); /*1000000000 - Math.floor(Math.random() * 1000000000);*/
  final_input = final_input + number;
  document.getElementById('custom4').value = final_input;
}

您需要编写自己的PRNG。JavaScript的本机版本不能作为种子。您需要编写自己的PRNG。JavaScript的本机代码不能被植入种子。所以基本上每次我运行它时,都会得到不同的数字。我说得对吗?有没有可能两个数字最终会是相同的?是的,这就是你所说的“随机数”。你不知道下一个是哪个号码。它可以是相同的或任何其他的。机会均等。嗯,那么我想我走错方向了。我需要唯一的随机数:(怎么做?基本上我需要生成的数字才是唯一的。然后你应该考虑使用像A这样的东西。所以基本上每次我运行这个,我会得到不同的数字。我是正确的吗?有没有可能两个数字最终会是相同的?是的,这就是你所谓的“随机”。你不知道下一个数字是什么。它可能是相同的或任何其他的。机会均等。嗯,我想我走错了方向。我需要唯一的随机数:(怎么做?基本上我需要生成的数字才是唯一的。然后你应该考虑使用像A这样的东西。