javascript - 如何随机生成一个介于 -0.5 和 0.5 之间的数字?

标签 javascript random

在 javascript 中,我如何随机生成一个介于 -0.5 和 0.5 之间的数字?下面好像只给出正数,没有给出负数。

Math.random(-0.15, 0.15)

最佳答案

Math.random 上引用 MDN ,

The Math.random() function returns a floating-point, pseudo-random number in the range [0, 1) that is, from 0 (inclusive) up to but not including 1 (exclusive)

因此,生成 0 到 1 之间的随机数并从中减去 0.5。

Math.random() - 0.5

注意 Math.random() 不需要任何参数。因此,您不能指定任何范围。


如果您想在一个范围内生成随机数,请使用 example snippets在 MDN 中,

// Returns a random number between min (inclusive) and max (exclusive)
function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}

范围演示

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


function appendToResult(value) {
  document.getElementById("result").innerHTML += value + "<br />";
}

document.getElementById("result").innerHTML = "";

for (var i = 0; i < 10; i += 1) {
  appendToResult(getRandomArbitrary(-0.35, 0.35));
}
<pre id="result" />

这是有效的,因为表达式

Math.random() * (max - min) + min

将按以下方式进行评估。首先,

Math.random()

将被评估以得到一个在 0 和 1 范围内的随机数,然后

Math.random() * (max - min)

它将乘以 maxmin 值之间的差值。在您的情况下,假设 max0.35 并且 min-0.35。因此,max - min 变为 0.7。因此,Math.random() * (max - min) 给出了 00.7 范围内的数字(因为即使 Math.random() 生成1,当你将它与0.7 相乘时,结果将变为0.7)。然后,你做

Math.random() * (max - min) + min

所以,对于你的情况,基本上变成了,

Math.random() * (0.35 - (-0.35)) + (-0.35)
(Math.random() * 0.7) - 0.35

因此,如果 (Math.random() * 0.7) 生成任何大于 0.35 的值,因为您从中减去 0.35,它变成了 00.35 之间的某个数字。如果 (Math.random() * 0.7) 生成的值小于 0.35,因为您从中减去 0.35,它变成介于-0.350

关于javascript - 如何随机生成一个介于 -0.5 和 0.5 之间的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30115860/

相关文章:

javascript - 将 '$(this)' jquery 转为 javascript 'this'

用于处理 Tab 键按下的 JavaScript

random - 从表中选择一个随机项目

c - 为什么这段代码中的 rand() 总是产生相同的矩阵

c - 在动态数组C中生成不重复的随机数

javascript - 将阅读更多按钮链接到另一个页面的 ID

javascript - jQuery 未捕获类型错误 : Object[object Object] has no method 'toFixed'

javascript - 原型(prototype)设计时跟踪 javascript 对象引用的最佳方法是什么

java - 两个骰子 throw 游戏问题

security - 在对其输出进行 SHA-1 处理后,可预测的随机数生成器如何(如果有的话)变得更加安全?