如何随机生成一个介于 -0.5 和 0.5 之间的数字?
How can I randomly generate a number in the range -0.5 and 0.5?
在 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()
不需要任何参数。因此,您不能指定任何范围。
如果你想生成一个范围内的随机数,使用MDN中的example snippets,
// 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)
它将乘以 max
和 min
值之间的差值。在你的例子中,假设 max
是 0.35
而 min
是 -0.35
。所以,max - min
变成了 0.7
。因此,Math.random() * (max - min)
给出了 0
和 0.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
,它会变成 0
和 [=25= 之间的某个数字].如果 (Math.random() * 0.7)
生成的值小于 0.35
,因为你从中减去 0.35
,它变成了 -0.35
和 0
之间的数字。
您可以使用 Math.random()
获取 0 到 1 之间的数字,然后减少 .5
来设置下限和上限
Math.random() - .5
在 javascript 中,我如何随机生成一个介于 -0.5 和 0.5 之间的数字?下面好像只给出正数,没有给出负数
Math.random(-0.15, 0.15)
在 Math.random
、
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()
不需要任何参数。因此,您不能指定任何范围。
如果你想生成一个范围内的随机数,使用MDN中的example snippets,
// 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)
它将乘以 max
和 min
值之间的差值。在你的例子中,假设 max
是 0.35
而 min
是 -0.35
。所以,max - min
变成了 0.7
。因此,Math.random() * (max - min)
给出了 0
和 0.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
,它会变成 0
和 [=25= 之间的某个数字].如果 (Math.random() * 0.7)
生成的值小于 0.35
,因为你从中减去 0.35
,它变成了 -0.35
和 0
之间的数字。
您可以使用 Math.random()
获取 0 到 1 之间的数字,然后减少 .5
来设置下限和上限
Math.random() - .5