【问题标题】:Is there any way to generate random numbers in javascript without using the math.random() function? [closed]有什么方法可以在不使用 math.random() 函数的情况下在 javascript 中生成随机数? [关闭]
【发布时间】:2018-10-16 07:32:26
【问题描述】:

我试图在 JavaScript 中生成 0 到 9 之间的随机数,而不使用内置函数 math.random()。我需要找到解决这个问题的方法。

【问题讨论】:

  • 您可以搜索伪随机数生成器 (PRNG) 算法并自己实现一个。或者从 random.org 下载随机数据。否则,不,它几乎是Math.random
  • 为什么要避开Math.random()
  • 您可以在页面加载时使用高分辨率时间戳为您自己的实现播种。
  • 你想达到什么目的?您想创建自己的伪随机算法吗?如果你只是想避免Math.random,你也可以使用crypto.getRandomValues。您需要转换输出。
  • 但是,为什么?你想重新发明轮子吗?

标签: javascript random


【解决方案1】:

您可以只使用鼠标位置和时间作为随机噪声:

// Expose the current mouse position
let clientX = 0;
window.onmousemove = e => clientX = e.clientX;

// Generate random values and show them:
setInterval(() => {
  document.body.textContent = (+new Date + clientX) % 10;
}, 100);

(请注意,这不够随机,无法用于加密/安全相关代码)

【讨论】:

猜你喜欢
  • 2012-11-06
  • 2019-08-20
  • 1970-01-01
  • 2019-06-23
  • 2011-02-09
  • 1970-01-01
  • 2013-02-08
  • 2011-11-28
相关资源
最近更新 更多