У меня есть небольшая интересная математическая головоломка, которую нужно решить.
Я пишу тест, чтобы проверить, что значения вне диапазона поля в окне не могут быть введены. По большей части это очень просто.
Я использую такую функцию:
function getRanInt(min, max)
{
let min = Math.ceil(min);
let max = Math.floor(max);
return Math.floor(Math.random() * (max - min) + min);
}
, чтобы установить диапазон «ошибочных» значений, которые я хочу проверить.
Однако, есть одно поле, которое бросает гаечный ключ в этом методе. Одно поле имеет ограничения на каждый ди git. Таким образом, первая ди git может быть только между 0-7, а вторая ди git может быть только между 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 и т. д. c ...
Я ломал голову над попыткой найти решение, которое не не очень запутанный, но я рисовал пустым. Я подумал, что смогу обратиться к вам здесь с хорошим отличием и посмотреть, не могли бы вы помочь отцепить мои шестерни.
ДОПОЛНИТЕЛЬНО: Если кому-то интересно, подсказка для рассматриваемого поля прямо говорит:
2 Digits:
1st = 0 - 7
2nd = 0 - 3