[0, 1)
— квадратная скобка означает включение числа, круглая – «дырку», исключение.x - 0.5
(включая) до x + 0.5
(исключая) округлит до целого x
. Можно записать так: [x-0.5, x+0.5)
min
до max
в описанном варианте старается сгладить вероятности всех целых до равных. Math.random()
. При этом сама "1" не участвует, но в данном случае это маловажно. Далее умножаем да диапазон, напр. на 4, и с помощью Math.round()
делим отрезки этой дорожки в кучки для каждого целого. Кучки по краям получатся меньше остальных.[0, 1)
просто умножить на 4 и округлить Math.round()
– будет выдавать случайные целые [0, 4]
(а не до 3). И как неравновероятно!0 1
[...................)
0 1 2 3 4
00011111222223333344o
Math.round()
разбивает пополам расстояние между двумя целыми, получится не 4 а 5 кучек. При чём в крайние, 0 и 4, попадёт всего по пол-интервала. Их вероятность будет 1/2 от полноценных вероятностей для 1, 2 и 3.min-0.5
до max+0.5
, чтобы после Math.round()
вероятности всех целых были одинаковы.Math.round()
можно недолюбливать и вместо него округлять вниз, Math.floor() – так случайное целое, как в вашем вопросе, можно получить проще const rand = (min, max) => min + Math.floor(Math.random() * (max - min + 1));
alert( rand(1, 3) );
[ .. )
– включающими начало, но исключающими конец. Например, randomInteger(min, max)
никогда бы не вернула max
. А это задание вышло такое себе, нетрадиционное, у них ) const che = new Date(2020, 0, 1);
const now = new Date();
let diff = Math.floor((che - now) / 1000); // в секундах
24 * 60 * 60 = 86400
секунд.const days = Math.floor(diff / 86400);
// вычесть учтённые дни из остатка времени
diff -= days * 86400;
0 – дней – часов
1 – день – час
2 – дня – часа
function declOfNum(number, titles) {
cases = [2, 0, 1, 1, 1, 2];
return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];
}
// применение:
declOfNum(days, ['день', 'дня', 'дней']); // массив из вариантов для 1, 2, 5
function func_9() {
let k = +prompt('Введите первое число');
let i = +prompt('Введите второе число');
if (k > i) {
while (k > i) {
if (k % 2 == 0) { // это значит, что k четное - выведите 0
k--;
} else { // сюда попадаем если k нечетное, надо его просто вывести
k += + k; // тут ошибка: зачем-то k удваивается: к нему прибавляется оно же. Эта строка не нужна
console.log(k); // ок
}
k--;
console.log(k); // не надо
}
}
else {
// предупредите, что первое число вы ожидаете бОльшим, чем второе. Хотя логичнее просить вводитб первое число меньше, чем второе
alert('arror');
}
}
func_9();
function funk_it_up() {
const a = +prompt('Введите первое число');
const b = +prompt('Введите второе число');
if (a >= b) {
alert('Первое число должно быть меньше второго');
return;
}
for (let i = a + 1; i < b; i++) {
console.log( i & 1 ? i : 0);
}
}
funk_it_up();
method is unavailable with group auth
- Этот метод можно вызвать с сервисным ключом доступа. Возвращаются только общедоступные данные.
- Этот метод можно вызвать с ключом доступа пользователя.
const index = [...this.children];
import base64
xoxoxo = b'0J/RgNC40LLQtdGCLCDQotC+0YHRgtC10YAh'
decoded = base64.b64decode(xoxoxo).decode('utf-8')
# Привет, Тостер!
>>> source = 'Привет, Тостер!'
>>> bytes = source.encode('utf-8')
>>> xoxoxo = base64.b64encode(bytes)
|--------------------|
|--------------------|
|--|
0-----1-----2-----3--
offset
function addBehavior(idFrom, idTo, isChangingHeight) {
const elFrom = document.getElementById(idFrom);
const elTo = document.getElementById(idTo);
const onOut = () => {
elTo.style.width = "";
isChangingHeight && elTo.style.height = "";
// elFrom.removeEventListener(onOut);
}
const onOver = () => {
elTo.style.width = "50%";
isChangingHeight && elTo.style.height = "50%";
// elFrom.removeEventListener(onOver);
}
elFrom.addEventListener("mouseover", onOver);
elFrom.addEventListener("mouseout", onOut);
}
addBehavior('gg', 'bg', true);
addBehavior('zz', 'qq');
Нельзя просто взять, и ...