使用JavaScript获取在特定范围内限制第一位和第二位数字的随机2位数字

问题描述 投票:0回答:2

我有一个有趣的数学难题要解决。

我正在编写测试以验证是否允许输入窗口中字段范围之外的值。在大多数情况下,这非常容易。

我正在使用类似这样的功能:

function getRanInt(min, max)
{
    let min = Math.ceil(min);
    let max = Math.floor(max);
    return Math.floor(Math.random() * (max - min) + min);
}

设置我要测试的“错误”值的范围。

但是,在此方法中,有一个领域会用扳手投掷。一个字段对每个数字都有限制。因此,第一位数字只能在0-7之间,第二位数字只能在0-3之间。

[我的最初想法是将两个数字简单地连接在一起,这样我可以分别约束:

let m1_1;
let m1_2;

m1_1 = getRanInt(8,9);
m1_2 = getRanInt(4,9);

m1 = m1_1.toString() + m1_2.toString();
m1 = Number(m1);

直到我经过半秒钟的思考,才意识到这只会让我得到错误的值> 83,却忽略了可能的错误值的整个数组,例如24、36、18等...

我一直在绞尽脑汁去尝试并提出一个解决方案,尽管该解决方案并不是很复杂,但是我一直在空白。我以为我会在这里向您求助,看看您是否可以帮我放松一下。

附加:如果有人感兴趣,该字段的工具提示明确地说:

2 Digits:
1st = 0 - 7
2nd = 0 - 3
javascript math random
2个回答
0
投票

要测试所有不正确的值,可以将您提供的解决方案与第二组值结合使用,可以通过以下方式使用函数来访问这些值:

let result;
if(Math.round(Math.random()))
{
let m1_1;
let m1_2;

m1_1 = getRanInt(8,9);
m1_2 = getRanInt(0,9);

let m1 = m1_1.toString() + m1_2.toString();
result = Number(m1);
}
else
{
    let m2_1;
let m2_2;

m2_1 = getRanInt(0,7);
m2_2 = getRanInt(4,9);

let m2 = m2_1.toString() + m2_2.toString();
result = Number(m2);
}

-1
投票

尝试

m1_1 = getRanInt(0,7);
m1_2 = getRanInt(0,3);
© www.soinside.com 2019 - 2024. All rights reserved.