如何在JavaScript中的两个指定变量之间生成随机整数,例如x=4和y=8将输出4、5、6、7、8中的任意一个?
当前回答
下面是一个JavaScript函数的示例,它可以在不使用Math.random()的情况下生成任意指定长度的随机数:
function genRandom(length)
{
const t1 = new Date().getMilliseconds();
var min = "1", max = "9";
var result;
var numLength = length;
if (numLength != 0)
{
for (var i = 1; i < numLength; i++)
{
min = min.toString() + "0";
max = max.toString() + "9";
}
}
else
{
min = 0;
max = 0;
return;
}
for (var i = min; i <= max; i++)
{
// Empty Loop
}
const t2 = new Date().getMilliseconds();
console.log(t2);
result = ((max - min)*t1)/t2;
console.log(result);
return result;
}
其他回答
如果需要介于0和max之间的变量,可以使用:
Math.floor(Math.random() * max);
加密功能强
要获取[x,y]范围内的加密强随机整数,请尝试:
让cs=(x,y)=>x+(y-x+1)*crypto.getRandomValues(新Uint32Array(1))[0]/2**32|0控制台日志(cs(4,8))
这是我在网页上找到的东西:
function randomInt(e,t){return Math.floor(Math.random()*(t-e+1)+e)}
要获得一个介于1和6之间的随机数,首先执行以下操作:
0.5 + (Math.random() * ((6 - 1) + 1))
这会将一个随机数乘以6,然后再加上0.5。接下来,通过以下操作将该数舍入为正整数:
Math.round(0.5 + (Math.random() * ((6 - 1) + 1))
这将数字四舍五入到最接近的整数。
或者为了更容易理解,请执行以下操作:
var value = 0.5 + (Math.random() * ((6 - 1) + 1))
var roll = Math.round(value);
return roll;
通常,使用变量执行此操作的代码为:
var value = (Min - 0.5) + (Math.random() * ((Max - Min) + 1))
var roll = Math.round(value);
return roll;
从最小值中减去0.5的原因是,仅使用最小值可以获得比最大值多1的整数。通过从最小值中减去0.5,基本上防止了最大值被舍入。
使用此函数获取给定范围内的随机数:
function rnd(min, max) {
return Math.floor(Math.random()*(max - min + 1) + min);
}